Qualcosa che sento di dover sapere con certezza: se lo farò ls <something>
, rm <something>
rimuoverò esattamente gli stessi file ls
visualizzati? Vi sono circostanze in cui è rm
possibile rimuovere i file che ls
non sono stati visualizzati? (Questo è nel 18.04 bash)
Modifica: grazie a tutti quelli che hanno risposto. Penso che la risposta completa sia una combinazione di tutte le risposte, quindi ho accettato la risposta più votata come "la risposta".
Cose inaspettate che ho imparato lungo la strada:
ls
non è così semplice come si potrebbe pensare nella gestione dei suoi argomenti- In una semplice installazione non complicata di Ubuntu, alias .bashrc
ls
- Non dare un nome ai tuoi file che iniziano con un trattino perché possono sembrare argomenti di comando, e nominarne uno -r lo sta chiedendo!
find -delete
meglio di rm
? Dici "Ecco perché" , ma per me non è del tutto chiaro a cosa si riferisca. Nota inoltre che la tua find
chiamata eliminerà tutti i file in modo ricorsivo nella directory corrente, dove rm
eliminerà semplicemente i file nella directory immediata. Inoltre -name *
è un no-op. Tutto sommato, sono abbastanza perplesso dal tuo consiglio ...
find
sia perché puoi eseguirlo, vedere tutti i file e quindi eseguire lo stesso comando con -delete
. Dato che hai già visto i risultati find
, non dovrebbe esserci alcuna ambiguità su ciò che verrà rimosso (in realtà mi piacerebbe sentire maggiori dettagli su questo sotto forma di una risposta)
-delete
" - Ma come è meglio che in esecuzione ls <filespec>
, seguito da rm <filespec>
(che l'OP sa già come fare)?
find ... -print
prima per confermare quali file verranno eliminati, quindi find ... -delete
eliminerai comunque i file creati tra i due comandi. Se si utilizzano entrambi -print
e -delete
, non si ottiene la conferma, solo un rapporto di fatto di ciò che è stato eliminato (e si potrebbe anche utilizzare rm -v
).
rm
non abbia una--dry-run
bandiera ...