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?
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?
Respuestas:
Digamos que quieres correr:
rm *.txt
Solo puedes ejecutar:
echo rm *.txt
o incluso solo:
echo *.txt
para ver qué archivos rm
eliminarían, porque es el shell expandiendo el *.txt
, no rm
.
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 de rm -r
, por ejemplo,
find . -name "*.txt" -print
entonces, si hace lo que quieres, cambia -print
a -delete
:
find . -name "*.txt" -delete
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 a rm dir/
sin -r
). Usted tendría que vaciar el directorio primero - o utilizar find
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 el find
método hace lo que he solicitado. Así que lo ejecutaré.)
Puedes decir:
rm -i
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.
Puede usar ls
para enumerar todos los archivos que serán eliminados por rm
:
ls ../path/*.txt
Si necesita una lista para ver los archivos que se eliminarán con un recursivo rm
, use la -R
bandera con ls
:
ls -R ../path/*.txt
ls */*/*.txt
-R
opcion.