Voglio vedere quali file verranno eliminati quando si esegue un rmin 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 rmin 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 rmverranno 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 findinvece di rm -r, ad es
find . -name "*.txt" -print
quindi se fa quello che vuoi, cambia -printin -delete:
find . -name "*.txt" -delete
tree.
find . -name "*.txt" -deletenon sembra essere ricorsivo. Rimossi tutti i file, ma non rimosse le directory elencate in-print
find . -type d -empty -delete
findnon eliminerà le directory che contengono ancora file (equivalente a rm dir/senza -r). Si dovrebbe svuotare la directory prima - o utilizzare findper -exec rmcon le opzioni appropriate per fare questo. es.find . -depth -name "*.txt" -exec rm -r {} +
echo rm *.txtmetodo 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 findmetodo fa quello che ho richiesto. Quindi eseguirò con quello.)
Si può dire:
rm -i
per eseguirlo in modalità interattiva, quindi rmti chiederà di confermare se ogni file deve essere eliminato. Potresti semplicemente rispondere di no a ciascun file per vedere quali sarebbero interessati.
È possibile utilizzare lsper 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 -Rflag con ls:
ls -R ../path/*.txt
ls */*/*.txt
-Ropzione