Como faço para encontrar todos os arquivos em um diretório e subdiretórios e executar um comando neles?
Por exemplo,
find . -type f -name "*.txt"
localiza todos os arquivos txt e:
find . -type f -name "*.txt" | gedit
envia para o gedit, mas dentro de um arquivo de texto. Eu quero que o gedit abra todos os arquivos de texto.
linux
command-line
xyz
fonte
fonte
{}
representa o nome do arquivo atual e o ponto e vírgula está terminando o comando. A barra invertida e as aspas circundantes são apenas para impedir a expansão do shell.find . -type f -name "*.txt" -print0 | xargs -0 gedit
fonte
man find
ouman xargs
, em seguida,/
procure por um determinado sinalizador. A documentação é muito boa, deve responder às suas perguntas.-print0
imprime um caractere NULL após cada entrada,-0
espera que as entradas sejam separadas pelo caractere NULL. É a maneira mais segura de lidar com nomes complicados.