Apaga todos os inodes BESIDES um sob todas as instâncias de dir0 / dir1 sob var / www / html, em um comando

1

Eu tenho o dir var/www/html e, abaixo dele, há alguns dirs do website (digamos, cerca de 5).

Todos os 5 diretórios do site têm um caminho interno dir0/dir1 .

Como eu poderia excluir todos os inodes dentro desse caminho (além de um inode chamado he_IL.mo ), mas em um comando?

Eu pergunto sobre um comando desde que eu tenho o seguinte bloco de 3 comandos que funciona, mas eu gostaria de ir o mínimo que puder com isso:

(
find /var/www/html/*/dir0/dir1/ ! -name 'he_IL.mo' -type f -exec rm -f {} + 
find /var/www/html/*/dir0/dir1/ -type f -exec rm -d {} +
find /var/www/html/*/dir0/dir1/ -type f -exec rm -l {} + 
)
  • Se eu fizer * em vez de f , receberei "Deve conter apenas uma letra".
  • Se eu fizer i em vez de f , receberei um "argumento desconhecido".
por JohnDoea 30.03.2017 / 15:46

1 resposta

0

A maneira de usar um comando é remover o -type do comando. Então ficamos:

find /var/www/html/*/dir0/dir1/ ! -name 'he_IL.mo' -exec rm -f {} + 

Observe que ele não excluirá diretórios e softlinks com o nome he_IL.mo , mas, se estiver tudo bem, use-o.

    
por 30.03.2017 / 17:30