Compacto uma pasta com muitas subpastas e arquivos no Windows com 7zip, carrego no VPS e, em seguida, execute o comando:
tar -xvzf file.tar.gz
todos os arquivos e pastas descompactados têm permissões 777. Como faço para obtê-los para que as pastas tenham permissões 755 e arquivos 644?
linux
file-permissions
tar
Kaspar L. Palgi
fonte
fonte
Respostas:
Se você estiver executando
tar(1)
como um usuário comum, ele aplicará o seuumask
por padrão. Se você estiver executandotar(1)
comoroot
, poderá dar a--no-same-permissions
opção de linha de comando para pedirtar(1)
para respeitar oumask
.Então: execute isso como um usuário comum:
ou execute isso como
root
:Você pode querer ficar
umask 022
em seu~/.bashrc
,~/.bash_profile
ou~/.profile
. (Veja a página debash(1)
manual para obter detalhes completos sobre os arquivos de inicialização. É complicado.)Detalhes sobre
umask
podem ser encontrados na página de manual do seu shell, na páginaumask(2)
de chamada de sistema ou na páginaumask(1posix)
de manual do utilitário fornecido pelo POSIX (se você tiver omanpages-posix
instalado).fonte
Execute os seguintes comandos na raiz do diretório para definir as permissões desejadas para seus diretórios e arquivos:
Esteja ciente do espaço entre o colchete de fechamento e a barra traseira
fonte
\;
Se você usar X maiúsculo,
chmod
poderá usá-lo para definir as permissões de execução apenas nos diretórios. iefonte
Encontrei esta solução que funcionou para mim. Para pastas e subpastas:
E para todos os arquivos (também em pastas e subpastas):
Todos os comentários são bem-vindos se essa não for uma boa maneira de fazê-lo. Eu apenas comecei a aprender Linux.
Após os comentários, uma solução mais robusta que lida com caracteres especiais seria:
fonte
the': No such file or directory chmod: cannot access
Logo.txt ': não existe esse arquivo ou diretório chmod: não pode acessar `./blog/wp-content/themes/OneRoom/LOGO': nenhum arquivo ou de reitoria777
é perigoso e aplicável apenas a uma minoria muito pequena de sistemas.find . -type f -print0 | xargs -0 chmod 644
,. A-name "*"
não é necessário, exargs(1)
irá analisar nomes em espaços ou novas linhas a menos que você usar o-0
- que analisa nomes de arquivos em ASCIINUL
personagem, que não pode aparecer em nomes de arquivos. O-print0
forfind(1)
pede para formatar sua saída em um modo adequado paraxargs -0
entrada.encontrar . -tipo f -exec chmod 644 {} \;
fonte