Je veux voir quels fichiers seront supprimés lors d'une exécution rm
sous linux. La plupart des commandes semblent avoir une option d'exécution à sec pour afficher de telles informations, mais je ne semble pas pouvoir trouver une telle option pour rm
. Est-ce seulement possible?
file-management
rm
Cory Klein
la source
la source
Réponses:
Dites que vous voulez courir:
Vous pouvez juste courir:
ou même simplement:
pour voir quels fichiers
rm
supprimeraient, car c’est le shell qui développe le*.txt
, pasrm
.La seule fois où cela ne vous aidera pas, c'est pour
rm -r
.Si vous souhaitez supprimer des fichiers et des répertoires de manière récursive, vous pouvez utiliser à la
find
place derm -r
, par exemplepuis si cela fait ce que vous voulez, changez le
-print
en-delete
:la source
tree
.find . -name "*.txt" -delete
ne semble pas être récursif tho. Suppression de tous les fichiers, mais non de la suppression des répertoires répertoriés dans-print
find . -type d -empty -delete
find
ne supprimera pas les répertoires contenant encore des fichiers (équivalent àrm dir/
sans-r
). Vous devrez vider le répertoire d' abord - ou utiliserfind
pour-exec rm
les options appropriées pour le faire. par exemplefind . -depth -name "*.txt" -exec rm -r {} +
echo rm *.txt
méthode semble présenter un inconvénient. Il présente les résultats dans une liste concaténée (une longue chaîne avec un fichier après le précédent), par opposition à une liste verticale. Existe-t-il un moyen d’afficher la sortie dans une liste verticale (un fichier par ligne)? (UPDATE: Je vois que lafind
méthode fait ce que j'ai demandé. Je vais donc courir avec ça.)Tu peux dire:
pour l'exécuter en mode interactif,
rm
vous invite donc à confirmer si chaque fichier doit être supprimé. Vous pouvez simplement répondre non à chaque fichier pour voir ceux qui seraient affectés.la source
Vous pouvez utiliser
ls
pour lister tous les fichiers qui seront supprimés parrm
:Si vous avez besoin de lister pour afficher les fichiers qui seront supprimés avec un code récursif
rm
, utilisez le-R
drapeau avecls
:la source
ls */*/*.txt
-R
option.