No meu diretório ~ / docs, quero "tocar" em todos os arquivos que terminam com .txt
Como posso fazer isso?
Com find
:
find ~/docs -name "*.txt" -exec touch {} \;
~/docs
name
opção corresponderá a todos os txt
arquivos - exec
executará o comando touch
no nome do arquivo, que é substituído em{}
\;
finaliza o comando e touch
será chamado uma vez para cada arquivo encontradoNota:
\+
no final, cria um único comando para executar touch
em todos esses arquivos de uma só vez. Isso não é possível com todos os comandos, mas funciona touch
e economiza algumas chamadas se você tiver muitos arquivos afetados.
{} \+
seria melhor aqui ...touch
pode lidar com muitos nomes de arquivos em sua linha de comando, por exemplo, com 10 mil arquivos e{} \;
10 mil chamadas serão feitas paratouch
... O uso{} \+
chamarátouch
apenas uma vez (dependendo da memória disponível) ... Aqui é um trecho de da descoberta man-page:-exec command {} + ... The command line is built in much the same way that xargs builds its command lines
. Há mais detalhes naman find
documentação.