Modificación de permisos de wget y directorios de descarga en Cygwin

Modificación de permisos de wget y directorios de descarga en Cygwin

Tengo Cygwin instalado en mi PC con Windows 7 de 64 bits y, a menudo, descargo archivos grandes usando wget. wget, sin embargo, guarda todos los archivos con permisos que me prohíben ejecutarlos cuando son archivos ejecutables de Windows (.exe o .msi). ¿Hay alguna forma de configurar los permisos para poder ejecutar estos archivos automáticamente? ¿Puedo cambiar también el directorio predeterminado en el que se guardan? Actualmente están guardados en la carpeta cygwin C:\cygwin64\home\Brentony me gustaría guardarlos en C:\Users\Brenton\Downloads.

Para mayor claridad, sé cómo mover estos archivos al directorio deseado manualmente después de guardarlos (por ejemplo, usando:

mv filename C:\Users\Brenton\Downloads

donde nombre de archivo es el nombre del archivo que debe transferirse) y sé cómo cambiar los permisos manualmente mediante:

chmod 755 filename

pero lo que quiero es una forma automática para que todos los archivos descargados a través de wget a partir de ahora se descarguen en mi directorio preferido con mis permisos preferidos.

Respuesta1

Directorio de destino

Puede utilizar la opción -P prefix/ para indicar que se guarde en un directorio determinado.--directory-prefix=prefixwget

Establezca el prefijo del directorio en prefix. El prefijo del directorio es el directorio donde se guardarán todos los demás archivos y subdirectorios, es decir, la parte superior del árbol de recuperación. El valor predeterminado es .(el directorio actual).

Ejemplo para guardar un solo archivo en su directorio de descarga:

wget -p $(cygpath -u "C:\Users\Brenton\Downloads") http://host.name/setup.exe

Permisos de archivos

En mi sistema, umaskestá configurado para 0022que cuando descargue wgetarchivos a mi directorio de inicio de Cygwin, los archivos tengan -rw-r--r--permisos, como se esperaba.

Sin embargo, si descargo a mi Downloadsdirectorio de Windows, se establecen los permisos ejecutables. No estoy seguro de por qué, pero sospecho que de alguna manera los permisos están influenciados por las ACL de NTFS. Este comportamiento también puede funcionar a su favor en su sistema. Si es así, podrías usar un alias de shell simple como:

alias wget-exe='wget -P $(cygpath -u "C:\Users\Brenton\Downloads") '

Script/función de shell sugerida

Si aún tiene que cambiar los permisos, puede usar el siguiente código como base para una función o script de shell (llamado algo así como wget-exe):

#!/bin/sh
downloads=$(cygpath -u "C:\Users\Brenton\Downloads")
wget -P "$downloads" "$@"

dir="$PWD"
cd "$downloads"
chmod 755 *.exe *.msi
cd "$dir"
# Alternative version using find to change permissions of all .msi and .exe files
# downloaded in the last day.
# find "$downloads" -mtime -1 \( -name '*.exe' -o -name '*.msi' \) -print0 | xargs -0 chmod +w

información relacionada