Quiero ver qué archivos se eliminarán al realizar un rm
in Linux. La mayoría de los comandos parecen tener una opción de ejecución en seco para mostrar tal información, pero parece que no puedo encontrar esa opción rm
. ¿Es esto posible?
file-management
rm
Cory Klein
fuente
fuente
Respuestas:
Digamos que quieres correr:
Solo puedes ejecutar:
o incluso solo:
para ver qué archivos
rm
eliminarían, porque es el shell expandiendo el*.txt
, norm
.El único momento en que esto no te ayudará es para
rm -r
.Si desea eliminar archivos y directorios de forma recursiva, puede usarlos en
find
lugar derm -r
, por ejemplo,entonces, si hace lo que quieres, cambia
-print
a-delete
:fuente
tree
.find . -name "*.txt" -delete
No parece ser recursivo aunque. Se eliminaron todos los archivos, pero no se eliminaron los directorios que figuran en la lista-print
find . -type d -empty -delete
find
no eliminará los directorios que todavía contienen archivos (equivalente arm dir/
sin-r
). Usted tendría que vaciar el directorio primero - o utilizarfind
para-exec rm
con las opciones apropiadas para hacer esto. por ejemplofind . -depth -name "*.txt" -exec rm -r {} +
echo rm *.txt
método parece tener un inconveniente. Presenta los resultados en una lista concatenada (una cadena larga con un archivo después del anterior), a diferencia de una lista vertical. ¿Hay alguna forma de hacer que la salida se muestre en una lista vertical (un archivo por línea)? (ACTUALIZACIÓN: veo que elfind
método hace lo que he solicitado. Así que lo ejecutaré.)Puedes decir:
para ejecutarlo en modo interactivo, por lo que
rm
le pedirá que confirme si se debe eliminar cada archivo. Simplemente puede responder no a cada archivo para ver cuáles se verían afectados.fuente
Puede usar
ls
para enumerar todos los archivos que serán eliminados porrm
:Si necesita una lista para ver los archivos que se eliminarán con un recursivo
rm
, use la-R
bandera conls
:fuente
ls */*/*.txt
-R
opcion.