Extraia arquivos e pastas com permissões especificadas

Extraia arquivos e pastas com permissões especificadas

Eu empacoto uma pasta com muitas subpastas e arquivos no Windows com 7zip, carrego no VPS e executo o comando:

tar -xvzf file.tar.gz

então, todos os arquivos e pastas descompactados terão permissões 777. Como faço para que as pastas tenham permissões 755 e os arquivos 644?

Responder1

Se você estiver executando tar(1)como um usuário normal, ele aplicará o seu umaskpor padrão. Se você estiver executando tar(1)como root, poderá fornecer --no-same-permissionsa opção de linha de comando para pedir tar(1)para respeitar o umask.

Então: execute isso como um usuário normal:

umask 022
tar zxvf file.tar.gz

ou execute isso como root:

umask 022
tar zxvf file.tar.gz --no-same-permissions

Você pode querer manter umask 022seu ~/.bashrc, ~/.bash_profile, ou ~/.profile. (Veja bash(1)a página de manual para detalhes completos sobre os arquivos de inicialização. É complicado.)

Detalhes sobre umaskpodem ser encontrados na página de manual do seu shell, na umask(2)página de manual de chamada do sistema ou na umask(1posix)página de manual do utilitário fornecido pelo POSIX (se você tiver o manpages-posixinstalado).

Responder2

Execute os seguintes comandos na raiz do diretório para definir as permissões desejadas para seus diretórios e arquivos:

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Esteja ciente do espaço entre a chave de fechamento e a barra invertida

Responder3

Se você usar X maiúsculo, chmodpoderá usá-lo para definir as permissões de execução apenas em diretórios. ou seja

chmod -R ugo+X .

Responder4

encontrar . -type f -exec chmod 644 {} \;

informação relacionada