Para copiar o mover un archivo, de forma gráfica, desde /home/usuario a un directorio del sistema ( directorio / y sus subdirectorios ) hay que hacerlo ejecutando un Nautilus con permisos de root, con la orden: gksu nautilus. Esto es así porque los directorios del sistema no tienen permisos de escritura para un usuario que no sea el root.
Los pendrives y/o discos duros externos o particiones adicionales creadas en formato fat32 o ntfs, o incluso en ext3 o ext4 para almacenar datos si que suelen tener permisos de escritura para el usuario normal, pero si solo tuvieran permisos de escritura para el usuario root, podríamos copiar o mover a ellos archivos desde /home/usuario con los scripts de este tema.
Para copiar ( o mover ) un archivo en un directorio cualquiera, distinto de /home/usuario, sin necesidad de entrar en un Nautilus con permisos de root: desde http://gnome-look.org/content/show.php/Nautilus+Scripts+Pack?content=90330 he bajado un paquete de scripts de nautilus, entre los que esta Copy to y Move to; Con estos scripts puedo copiar/mover respectivamente en cualquier directorio:
Si es en uno que se necesite permisos de root me pide la contraseña antes de hacerlo, y luego lo hace, y si es en uno que no necesita permisos de root no pide la contraseña, y lo copia o mueve.
Estos scripts para Nautilus se instalan en la carpeta /home/usuario/.gnome2/nautilus-scripts, y se tiene acceso a ellos en Nautilus >botón secundario >menú Scripts
Es decir, una vez tenemos el script en esa dirección elegimos el archivo que queremos copiar ( o mover ), damos al botón derecho del ratón y vamos al menú contextual Scripts , en el que se verán todos los scripts que tengamos en esa carpeta (/home/usuario/.gnome2/nautilus-scripts ).elegimos el script Copy to o el Movy to según si lo queremos copiar o mover. Una vez hecho esto se abre un pequeño administrador de archivos en el que elegimos el directorio al que queremos copiar o mover el archivo, y nos pide la contraseña si es necesario ( si lo queremos copiar o mover a un directorio del sistema que sea distinto al /home/usuario ).
Os dejo estos dos scripts porque creo que son muy útiles para copiar o mover archivos a directorios del sistema, sin el peligro de abrir un Nautilus con permisos de root.
El texto del script Copy to es tal que así:
#!/bin/bash
#########################################################
# #
# This are NScripts v3.4 #
# #
# Licensed under the GNU GENERAL PUBLIC LICENSE 3 #
# #
# Copyright 2007 - 2008 Christopher Bratusek #
# #
#########################################################
if [[ -x /usr/bin/gksu || -x /opt/gnome/bin/gksu ]]; then
sudotool="gksu -u root"
elif [[ -x /usr/bin/gnomesu || -x /opt/gnome/bin/gnomesu ]]; then
sudotool=gnomesu
fi
destination=$(zenity --file-selection --directory --title "Where to copy files?")
echo $NAUTILUS_SCRIPT_SELECTED_URIS > ~/.gnome2/temp_copy_list
for file in $(cat ~/.gnome2/temp_copy_list); do \
file_name=$(echo $file | sed -e 's/file:\/\///g' -e 's/\%20/\ /g')
short_file_name=$(echo $file | sed -e 's#.*/##g' -e 's/\%20/\ /g')
if [[ -w $destination && -a $destination/$short_file_name ]]; then \
confirm=$(zenity zenity --question --text "Overwrite File $destination/$short_file_name?"; echo $?)
if [[ $confirm == 0 ]]; then
cp -r "$file_name" $destination
if (( $? != 0 )); then
zenity --info --text "Something went wrong" --title "Failure"
fi
fi
elif [[ -w $destination ]]; then \
cp -r "$file_name" $destination
if (( $? != 0 )); then
zenity --info --text "Something went wrong" --title "Failure"
fi
elif [[ -a $destination && $sudotool != "" ]]; then
$sudotool "cp -r '$file_name' $destination"
else zenity --info --title "Failure" --text "$destination does either not\nexist or is not writable"
fi; \
done
rm -f ~/.gnome2/temp_copy_list
--------------
El texto del script Move to es así:
#!/bin/bash
#########################################################
# #
# This are NScripts v3.4 #
# #
# Licensed under the GNU GENERAL PUBLIC LICENSE 3 #
# #
# Copyright 2007 - 2008 Christopher Bratusek #
# #
#########################################################
if [[ -x /usr/bin/gksu || -x /opt/gnome/bin/gksu ]]; then
sudotool="gksu -u root"
elif [[ -x /usr/bin/gnomesu || -x /opt/gnome/bin/gnomesu ]]; then
sudotool=gnomesu
fi
destination=$(zenity --file-selection --directory --title "Where to move files?")
echo $NAUTILUS_SCRIPT_SELECTED_URIS > ~/.gnome2/temp_move_list
for file in $(cat ~/.gnome2/temp_move_list); do \
file_name=$(echo $file | sed -e 's/file:\/\///g' -e 's/\%20/\ /g')
short_file_name=$(echo $file | sed -e 's#.*/##g' -e 's/\%20/\ /g')
if [[ -w $destination && -a $destination/$short_file_name ]]; then \
confirm=$(zenity zenity --question --text "Overwrite File $destination/$short_file_name?"; echo $?)
if [[ $confirm == 0 ]]; then
mv "$file_name" $destination
if (( $? != 0 )); then
zenity --info --text "Something went wrong" --title "Failure"
fi
fi
elif [[ -w $destination ]]; then \
mv "$file_name" $destination
if (( $? != 0 )); then
zenity --info --text "Something went wrong" --title "Failure"
fi
elif [[ -a $destination && $sudotool != "" ]]; then
$sudotool "mv '$file_name' $destination"
else zenity --info --title "Failure" --text "$destination does either not\nexist or is not writable"
fi; \
done
rm -f ~/.gnome2/temp_move_list
------------------------
Para, con el texto de los scripts, crear un script : Como crear un script básico
------------------------
Hay alguna forma de hacerlo si estoy con un ubuntu live usb???, porque mi disco duro no arranca.
ResponderEliminarMuchas gracias.
albatrin:
ResponderEliminarQuizás un poco tarde...no lo había leído...perdona por ello.
Se puede hacer de la misma forma que con el disco duro del pc: se crean los scripts, se copian en la carpeta /home/usuario/.gnome2/nautilus-scripts, y se tiene acceso a ellos en Nautilus >botón secundario >menú Scripts
Aunque según como* tengas instalado el Ubuntu en el live-usb, quizás tengas que repetir los pasos cada vez que reinicies el pendrive.
* Si lo tienes instalado de forma que no se guarden los cambios tendrás que repetir la instalación de los scripts cada vez que reinicies el pendrive.