Copiar o mover un archivo a cualquier directorio con un script
Volver al foro (Usando Guadalinex V6)-
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: http://hatteras.wordpress.com/2010/02/02/copiar-o-mover-un-archivo-a-cualquier-directorio-con-un-script/
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
fidestination=$(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; \
donerm -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
fidestination=$(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; \
donerm -f ~/.gnome2/temp_move_list
mi blog: http://hatteras.wordpress.com/-
Re: Copiar o mover un archivo a cualquier directorio con un script
Escrito por IgnacioT el 17/10/2011 13:54Hola. Tengo un problema, fruto de mi ignorancia, supongo, sobre este mismo tema:
Al copiar un archivo, desde el navegador, en modo gráfico arrastrando:
- a una llave USB o disco duro externo: funciona sin más preámbulos ni problemas.
- a distinta partición de otro S.O. en la misma máquina en formato ntfs: funciona aparentemente, pero desde el otro S.O. (WVista) no se ve el tal archivo copiado. O sea, que no.
- a distinta partición en la misma máquina en formato fat32: no permite la copia, con la "disculpa" de que esa partición es de "solo lectura".
La partición con formato fat32 es la que yo destinaba al intercambio entre los dos S.O. (WVista y Guadalinex), asi que mi gozo en un pozo.
-
Re: Copiar o mover un archivo a cualquier directorio con un script
Escrito por hatteras el 29/11/2011 17:57En la partición fat32 no deja porque no la tendrás montada con permisos de lectura y escritura; para que se automonte con ese tipo de permisos tienes que con la orden en la terminal: sudo gedit /etc/fstab abrir el archivo /etc/fstab y editar adecuadamente la linea que haga referencia a dicha partición.
mi blog: http://hatteras.wordpress.com/
-
-
hatteras
Maestro Ancestral
Envíos: 4708