Eu quero ver quais arquivos serão excluídos ao executar um rm
no 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 rm
no 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 rm
excluiriam, 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 find
vez de rm -r
, por exemplo
find . -name "*.txt" -print
se fizer o que você deseja, altere -print
para -delete
:
find . -name "*.txt" -delete
tree
.
find . -name "*.txt" -delete
não parece ser recursivo. Removidos todos os arquivos, mas não remover diretórios que foram listadas em-print
find . -type d -empty -delete
find
nã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 find
para -exec rm
com as opções apropriadas para fazer isso. por exemplofind . -depth -name "*.txt" -exec rm -r {} +
echo rm *.txt
mé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 find
mé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, rm
solicitará 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 ls
para 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 -R
sinalizador com ls
:
ls -R ../path/*.txt
ls */*/*.txt
-R
opção