find
é a substituição completa, mas para operações simples em arquivos no diretório atual, esse sh
-script pode ser bastante útil (e mais fácil de ler / escrever):
for file in *.jpg; do
echo "do something with $file"
done
desculpe se isso for solicitado antes, mas fiquei curioso sobre qual é o comando Linux equivalente de forfiles.exe no Windows? Isso veio à minha mente quando vi esta pergunta
find
é a substituição completa, mas para operações simples em arquivos no diretório atual, esse sh
-script pode ser bastante útil (e mais fácil de ler / escrever):
for file in *.jpg; do
echo "do something with $file"
done
Acho que encontrar fornece a funcionalidade que os arquivos forficos oferecem.
O comando find faz o que você deseja. Aqui está um exemplo:
find /mnt/Pictures -name '*.jpg' \! -mtime 7 -exec rm {} \;
Isso excluirá todos os arquivos jpg de /mnt/Pictures
, que não foram modificados nos últimos 7 dias (168 horas). Se você não se importa com o caso dos nomes de arquivos, use -iname
em vez de -name
.
Aqui está uma correspondência entre os parâmetros de forfiles e os parâmetros de find :
/p
- > o caminho é o primeiro argumento do find /s
- > Por padrão, encontre pesquisas em todos os subdiretórios. Para desabilitar isso, use o parâmetro -maxdepth
com 1. /c
- > %código%. Também substitua -exec
por @file
e não esqueça de terminar o comando com {}
(muitos iniciantes são bit por esse erro) \;
- > %código%. Os dados do arquivo foram modificados pela última vez /d
* há 24 horas. Você pode criar uma tarefa cron que use find com os argumentos apropriados, por exemplo, -mtime +7