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?
file-management
rm
Cory Klein
fonte
fonte
Respostas:
Digamos que você queira executar:
Você pode simplesmente executar:
ou mesmo apenas:
para ver quais arquivos
rm
excluiriam, porque é o shell que está expandindo o*.txt
, nãorm
.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 derm -r
, por exemplose fizer o que você deseja, altere
-print
para-delete
:fonte
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 arm dir/
sem-r
). Você teria que esvaziar o diretório em primeiro lugar - ou usarfind
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 ofind
método faz o que eu tenha solicitado Então, eu vou correr com isso..)Você pode dizer:
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.fonte
Você pode usar
ls
para listar todos os arquivos que serão removidos porrm
:Se você precisar listar para visualizar os arquivos que serão excluídos com uma recursiva
rm
, use o-R
sinalizador comls
:fonte
ls */*/*.txt
-R
opção