Gostaria de excluir todos os arquivos, mas mantenha a estrutura da pasta. Há algum jeito?
NOTA: (Estou usando o GNU bash 4.1.5).
bash
bash-script
Tom Brito
fonte
fonte
Respostas:
Tente o seguinte:
Isso excluirá todos os arquivos, excluindo diretórios, abaixo do diretório de trabalho atual. Seja extremamente cuidadoso com este comando.
Se a versão da
find
sua máquina suportar, você também poderá usarfonte
find
comando nunca vê as aspas. Apenas vê o{}
marcador como um argumento.-exec command {} +
" & this "-exec command ;
". Eu usei o\;
no passado apenas nunca o '{}'.find
. Eu acho que os modelos servem para mostrar quais argumentos ofind
comando precisa e não se preocupar com nada relacionado ao shell.Você pode usar o comando
find
para localizar todos os arquivos, mas manter a estrutura de diretórios:De acordo com as perguntas e respostas sobre Unix e Linux, intitulado: gnu find and masking the {} for some shells - what? , escapar do
{}
tique único ('
) não parece mais ser necessário nas conchas modernas, como o Bash.fonte
A maneira mais fácil de excluir todos os arquivos regulares do diretório e subdiretórios atuais recursivamente:
Somente o zsh tem qualificadores de globbing para combinar arquivos por tipo. No entanto, o
rm
comando não funciona em diretórios; portanto, no bash, você pode usarIsso não funciona para outros comandos que
rm
não sejam . Em geral, você pode usarfind
:ou se o seu
find
não suportar-delete
:fonte
Eu tinha requisitos semelhantes para excluir arquivos de um caminho e seus subdiretórios (filtragem por tempo) sem excluir a estrutura de diretórios.
E eu usei o formato abaixo, que funcionou para mim.
encontre / test123 / home / arquivo_de_teste_de_teste / data / nfs -mtime +6 -type f -exec rm {} \;
Syntex: find (caminho do arquivo) -mtime (maior ou menor que dias) -tipo f -exec rm {} \;
-type: Mencione o tipo de arquivo "f" para o diretório "d" -exec: execute o comando rm: remove {}: saída do comando find
Nota: Teste-o antes de usá-lo. Por favor, sinta-se livre para corrigir ou atualizar se eu perdi alguma coisa.
fonte
find ... rm
estrutura básica já foi abordada, não tenho certeza de que seja uma contribuição valiosa como uma nova resposta a essa pergunta.