Modificando permissões wget e diretórios de download no Cygwin

Modificando permissões wget e diretórios de download no Cygwin

Tenho o Cygwin instalado no meu PC com Windows 7 de 64 bits e costumo baixar arquivos grandes usando o wget. wget, no entanto, salva todos os arquivos com permissões que me proíbem de executá-los quando são arquivos executáveis ​​do Windows (.exe ou .msi). Existe alguma maneira de definir as permissões para que eu possa executar esses arquivos automaticamente? Também posso alterar o diretório padrão no qual eles são salvos? Atualmente eles estão salvos na pasta cygwin C:\cygwin64\home\Brentone eu gostaria de salvá-los em C:\Users\Brenton\Downloads.

Para maior clareza, sei como mover esses arquivos manualmente para o diretório desejado depois de salvos (por exemplo, usando:

mv filename C:\Users\Brenton\Downloads

onde filename é o nome do arquivo que precisa ser transferido) e sei como alterar as permissões manualmente via:

chmod 755 filename

mas o que eu quero é uma forma automática de que todos os arquivos baixados via wget de agora em diante sejam baixados para meu diretório preferido com minhas permissões preferidas.

Responder1

Diretório de destino

Você pode usar a opção -P prefix/ para direcionar o salvamento em um determinado diretório.--directory-prefix=prefixwget

Defina o prefixo do diretório como prefix. O prefixo do diretório é o diretório onde todos os outros arquivos e subdiretórios serão salvos, ou seja, o topo da árvore de recuperação. O padrão é .(o diretório atual).

Exemplo para salvar um único arquivo em seu diretório de download:

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

Permissões de arquivo

No meu sistema, umaskestá configurado para 0022que quando eu wgetbaixe arquivos para o diretório inicial do Cygwin, os arquivos tenham -rw-r--r--permissões - conforme esperado.

No entanto, se eu fizer download para o Downloadsdiretório do Windows, as permissões do executável serão definidas. Não sei por que, mas suspeito que de alguma forma as permissões estejam sendo influenciadas pelas ACLs NTFS. Esse comportamento também pode funcionar a seu favor em seu sistema. Nesse caso, você pode usar um alias de shell simples, como:

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

Script/função de shell sugerido

Se você ainda precisar alterar as permissões, poderá usar o código a seguir como base para um script ou função de shell (chamado algo 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

informação relacionada