Saya ingin melihat file apa yang akan dihapus ketika melakukan rm
di linux. Sebagian besar perintah tampaknya memiliki opsi jalankan untuk hanya menampilkan informasi seperti itu, tetapi saya tidak bisa menemukan opsi seperti itu untuk rm
. Apakah ini mungkin?
file-management
rm
Cory Klein
sumber
sumber
Jawaban:
Katakanlah Anda ingin menjalankan:
Anda bisa menjalankan:
atau bahkan hanya:
untuk melihat file apa yang
rm
akan dihapus, karena shell memperluas*.txt
, bukanrm
.Satu-satunya saat ini tidak akan membantu Anda adalah untuk
rm -r
.Jika Anda ingin menghapus file dan direktori secara rekursif, maka Anda bisa menggunakan
find
bukanrm -r
, misalnyamaka jika itu melakukan apa yang Anda inginkan, ubah
-print
ke-delete
:sumber
tree
.find . -name "*.txt" -delete
sepertinya tidak bersifat rekursif. Menghapus semua file, tetapi tidak menghapus direktori yang terdaftar di-print
find . -type d -empty -delete
find
tidak akan menghapus direktori yang masih berisi file (setara denganrm dir/
tanpa-r
). Anda harus mengosongkan direktori pertama - atau menggunakanfind
untuk-exec rm
dengan pilihan yang tepat untuk melakukan hal ini. misalnyafind . -depth -name "*.txt" -exec rm -r {} +
echo rm *.txt
metode ini tampaknya memiliki kelemahan. Ini menyajikan hasil dalam daftar gabungan (string panjang dengan satu file setelah yang sebelumnya), sebagai lawan dari daftar vertikal. Apakah ada cara untuk mendapatkan output untuk ditampilkan dalam daftar vertikal (satu file per baris)? (PEMBARUAN: Saya melihat bahwafind
metode ini melakukan apa yang saya minta. Jadi saya akan menjalankannya.)Anda bisa mengatakan:
untuk menjalankannya dalam mode interaktif, jadi
rm
akan meminta Anda untuk mengkonfirmasi apakah setiap file harus dihapus. Anda bisa menjawab tidak untuk setiap file untuk melihat mana yang akan terpengaruh.sumber
Anda dapat menggunakan
ls
daftar semua file yang akan dihapus olehrm
:Jika Anda perlu daftar untuk melihat file yang akan dihapus dengan rekursif
rm
, maka gunakan-R
flag denganls
:sumber
ls */*/*.txt
-R
opsi.