bash: / usr / bin / find: Lista de argumentos muito longa

0

Eu tenho muitos arquivos em uma pasta. Eu só quero que meus inodes sejam liberados o mais rápido possível, Então eu tentei com

find ./EcoBackup/* -name '*.*' > FilesBackupName.txt
bash: /usr/bin/find: Argument list too long
tar -cv -T FilesBackupName.txt -f tarball.tar

Como posso acelerar meu tar sem falhar com a lista de argumentos é muito longo?

Trabalhará sem falhas?

find /foot/bar/ -name '*.*' -exec mv -t tarball.tar {} +

find /foot/bar/ -name '*.*' -print0 | xargs -0 tar -t tarball.tar

Posso remover o arquivo do mesmo tipo?

    
por Aashu 01.10.2015 / 13:20

1 resposta

1

A razão pela qual isso acontece é que o bash realmente expande o asterisco para cada arquivo correspondente, produzindo muitos argumentos na linha de comando. Então, depois de removê-lo, ele deve ficar bem (por exemplo, aqui )

find ./EcoBackup/ -name '*.*' > FilesBackupName.txt

e suas soluções sugeridas também devem funcionar.

Você pode usar a opção --remove-files para remover arquivos de uma só vez com o comando tar

tar --remove-files -cv -T FilesBackupName.txt -f tarball.tar
    
por 05.10.2015 / 19:30