Voglio vedere quali file verranno eliminati quando si esegue un rm
in Linux. La maggior parte dei comandi sembra avere un'opzione di esecuzione a secco per mostrare solo tali informazioni, ma non riesco a trovare tale opzione per rm
. È possibile?
Voglio vedere quali file verranno eliminati quando si esegue un rm
in Linux. La maggior parte dei comandi sembra avere un'opzione di esecuzione a secco per mostrare solo tali informazioni, ma non riesco a trovare tale opzione per rm
. È possibile?
Risposte:
Di 'che vuoi correre:
rm *.txt
Puoi semplicemente eseguire:
echo rm *.txt
o anche solo:
echo *.txt
per vedere quali file rm
verranno eliminati, perché è la shell che sta espandendo *.txt
, no rm
.
L'unica volta che questo non ti aiuterà è per rm -r
.
Se si desidera rimuovere ricorsivamente file e directory, è possibile utilizzare find
invece di rm -r
, ad es
find . -name "*.txt" -print
quindi se fa quello che vuoi, cambia -print
in -delete
:
find . -name "*.txt" -delete
tree
.
find . -name "*.txt" -delete
non sembra essere ricorsivo. Rimossi tutti i file, ma non rimosse le directory elencate in-print
find . -type d -empty -delete
find
non eliminerà le directory che contengono ancora file (equivalente a rm dir/
senza -r
). Si dovrebbe svuotare la directory prima - o utilizzare find
per -exec rm
con le opzioni appropriate per fare questo. es.find . -depth -name "*.txt" -exec rm -r {} +
echo rm *.txt
metodo sembra avere uno svantaggio. Presenta i risultati in un elenco concatenato (una lunga stringa con un file dopo quello precedente), al contrario di un elenco verticale. Esiste un modo per visualizzare l'output in un elenco verticale (un file per riga)? (AGGIORNAMENTO: Vedo che il find
metodo fa quello che ho richiesto. Quindi eseguirò con quello.)
Si può dire:
rm -i
per eseguirlo in modalità interattiva, quindi rm
ti chiederà di confermare se ogni file deve essere eliminato. Potresti semplicemente rispondere di no a ciascun file per vedere quali sarebbero interessati.
È possibile utilizzare ls
per elencare tutti i file che verranno rimossi da rm
:
ls ../path/*.txt
Se è necessario elencare per visualizzare i file che verranno eliminati con un ricorsivo rm
, utilizzare il -R
flag con ls
:
ls -R ../path/*.txt
ls */*/*.txt
-R
opzione