Eu quero ver quais arquivos serão excluídos ao executar um rmno linux. A maioria dos comandos parece ter uma opção de execução a seco para mostrar exatamente essas informações, mas não consigo encontrar essa opção rm. Isso é possível?
Eu quero ver quais arquivos serão excluídos ao executar um rmno linux. A maioria dos comandos parece ter uma opção de execução a seco para mostrar exatamente essas informações, mas não consigo encontrar essa opção rm. Isso é possível?
Respostas:
Digamos que você queira executar:
rm *.txt
Você pode simplesmente executar:
echo rm *.txt
ou mesmo apenas:
echo *.txt
para ver quais arquivos rmexcluiriam, porque é o shell que está expandindo o *.txt, não rm.
A única vez que isso não vai ajudá-lo é para rm -r.
Se você deseja remover arquivos e diretórios recursivamente, poderá usar em findvez de rm -r, por exemplo
find . -name "*.txt" -print
se fizer o que você deseja, altere -printpara -delete:
find . -name "*.txt" -delete
tree.
find . -name "*.txt" -deletenão parece ser recursivo. Removidos todos os arquivos, mas não remover diretórios que foram listadas em-print
find . -type d -empty -delete
findnão excluirá diretórios que ainda contêm arquivos (equivalente a rm dir/sem -r). Você teria que esvaziar o diretório em primeiro lugar - ou usar findpara -exec rmcom as opções apropriadas para fazer isso. por exemplofind . -depth -name "*.txt" -exec rm -r {} +
echo rm *.txtmétodo parece ter uma desvantagem. Apresenta os resultados em uma lista concatenada (uma sequência longa com um arquivo após o anterior), em oposição a uma lista vertical. Existe alguma maneira de exibir a saída em uma lista vertical (um arquivo por linha)? (UPDATE: Eu vejo que o findmétodo faz o que eu tenha solicitado Então, eu vou correr com isso..)
Você pode dizer:
rm -i
para executá-lo no modo interativo, rmsolicitará que você confirme se cada arquivo deve ser excluído. Você poderia simplesmente responder não a cada arquivo para ver quais seriam afetados.
Você pode usar lspara listar todos os arquivos que serão removidos por rm:
ls ../path/*.txt
Se você precisar listar para visualizar os arquivos que serão excluídos com uma recursiva rm, use o -Rsinalizador com ls:
ls -R ../path/*.txt
ls */*/*.txt
-Ropção