Sesuatu yang saya rasa harus saya ketahui dengan pasti: jika saya ls <something>, akan rm <something>menghapus file yang sama persis yang lsditampilkan? Apakah ada keadaan di mana rmdapat menghapus file yang lstidak muncul? (Ini dalam bash 18,04)
Sunting: terima kasih kepada semua orang yang menjawab. Saya pikir jawaban lengkap adalah kombinasi dari semua jawaban, jadi saya telah menerima jawaban yang paling banyak dipilih sebagai "jawaban".
Hal-hal tak terduga yang saya pelajari selama ini:
lstidak semudah yang Anda kira dalam penanganan argumennya- Dalam instalasi sederhana un-fiddled-with Ubuntu, .bashrc alias
ls - Jangan beri nama file Anda dimulai dengan tanda hubung karena dapat terlihat seperti argumen perintah, dan penamaan satu -r memintanya!
find -deletelebih baik daripada rm? Anda mengatakan "Itu sebabnya" , tetapi sama sekali tidak jelas bagi saya apa yang dimaksud. Juga perhatikan bahwa findpermohonan Anda akan menghapus semua file secara rekursif di direktori saat ini, di mana rmhanya akan menghapus file di direktori langsung. Juga -name *adalah no-op. Secara keseluruhan, saya cukup bingung dengan saran Anda ...
findini adalah karena Anda dapat menjalankannya, melihat semua file, dan kemudian menjalankan perintah yang sama dengannya -delete. Karena Anda sudah melihat hasil dari find, seharusnya tidak ada ambiguitas dengan apa yang akan dihapus (saya sebenarnya ingin mendengar rincian lebih lanjut tentang ini dalam bentuk jawaban)
-delete" - Tapi bagaimana itu lebih baik daripada menjalankan ls <filespec>, diikuti oleh rm <filespec>(yang OP sudah tahu bagaimana melakukannya)?
find ... -printpertama untuk mengonfirmasi file apa yang akan dihapus, dan kemudian find ... -delete, Anda masih akan menghapus file yang dibuat di antara kedua perintah. Jika Anda menggunakan keduanya -printdan -delete, Anda tidak mendapatkan konfirmasi, hanya laporan setelah fakta tentang apa yang telah dihapus (dan Anda mungkin juga menggunakannya rm -v).
rmtidak memiliki--dry-runbendera ...