para excluir arquivos na pasta, podemos usar a seguinte abordagem com find
find /home -type f -delete
mas como excluir recursivamente apenas os arquivos que existem na pasta temporária?
digamos que temos o seguinte exemplo de caminho temporário
/home/bla/bla/temp
/home/test/temp
/home/subf/subf/subf/temp
.
.
.
/home/1/temp
como alterar a sintaxe de localização para excluir apenas os arquivos no temp
diretório
o alvo é usar o comando find para corresponder apenas às pastas temporárias e remover os arquivos no diretório temporário
O comando a seguir encontrará arquivos regulares em qualquer diretório nomeado
temp
e abaixo, abaixo de/home
.Para realmente excluí-los:
Notas:
Por padrão
find
, não segue links simbólicos. Consulteman 1 find
as opções-L
e-H
(se suportado)-P
.-delete
não é portátil. Se o seufind
não suporta-delete
, use-exec rm {} +
.-delete
é melhor não só porque não cria um processo adicional. É mais seguro, pois (pelo menos-delete
implementado no GNUfind
) remove a condição de corrida em que alguém pode fazer você remover o(s) arquivo(s) errado(s) alterando algum diretório para um link simbólico entre o momento emfind
que encontra um arquivo erm
o remove. O fato de nossofind
comando não seguir links simbólicos é irrelevante neste momento.