Saya memiliki direktori 30 TB yang memiliki miliaran file di dalamnya yang secara formal semua file JPEG. Saya menghapus setiap folder file seperti ini:
sudo rm -rf bolands-mills-mhcptz
Perintah ini hanya berjalan dan tidak menunjukkan apa-apa apakah itu berfungsi atau tidak.
Saya ingin melihat apakah itu menghapus file atau bagaimana status perintah saat ini.
Jawaban yang Diterima:
Anda dapat menggunakan rm -v
untuk memiliki rm
cetak satu baris per file yang dihapus. Dengan cara ini Anda dapat melihat rm
memang berfungsi untuk menghapus file. Tetapi jika Anda memiliki miliaran file maka yang akan Anda lihat hanyalah rm
masih bekerja. Anda tidak akan tahu berapa banyak file yang sudah dihapus dan berapa banyak yang tersisa.
Alat pv
dapat membantu Anda dengan perkiraan kemajuan.
http://www.ivarch.com/programs/pv.shtml
Inilah cara Anda memanggil rm
dengan pv
dengan contoh keluaran
$ rm -rv dirname | pv -l -s 1000 > logfile
562 0:00:07 [79,8 /s] [====================> ] 56% ETA 0:00:05
Dalam contoh yang dibuat-buat ini saya memberi tahu pv
bahwa ada 1000
file. Keluaran dari pv
menunjukkan bahwa 562 sudah dihapus, waktu yang telah berlalu adalah 7 detik, dan perkiraan untuk selesai dalam 5 detik.
Beberapa penjelasan:
pv -l
membuatpv
untuk menghitung dengan baris baru, bukan bytepv -s number
memberitahupv
berapa totalnya sehingga dapat memberi Anda perkiraan.- Pengalihan ke
logfile
pada akhirnya adalah untuk output bersih. Jika tidak, baris status daripv
tercampur dengan output darirm -v
. Bonus:Anda akan memiliki file log dari apa yang telah dihapus. Tapi hati-hati file akan menjadi besar. Anda juga dapat mengarahkan ulang ke/dev/null
jika Anda tidak membutuhkan log.
Untuk mendapatkan jumlah file Anda dapat menggunakan perintah ini:
$ find dirname | wc -l
Ini juga bisa memakan waktu lama jika ada miliaran file. Anda dapat menggunakan pv
di sini juga untuk melihat berapa banyak yang telah dihitung
$ find dirname | pv -l | wc -l
278k 0:00:04 [56,8k/s] [ <=> ]
278044
Di sini dikatakan bahwa butuh 4 detik untuk menghitung 278k file. Hitungan tepat di akhir (278044
) adalah keluaran dari wc -l
.
Jika Anda tidak ingin menunggu penghitungan, Anda dapat menebak jumlah file atau menggunakan pv
tanpa perkiraan:
$ rm -rv dirname | pv -l > logfile
Seperti ini Anda tidak akan memiliki perkiraan untuk menyelesaikan tetapi setidaknya Anda akan melihat berapa banyak file yang sudah dihapus. Arahkan ulang ke /dev/null
jika Anda tidak memerlukan file log.
Nitpick:
- apakah Anda benar-benar membutuhkan
sudo
? - biasanya
rm -r
cukup untuk menghapus secara rekursif. tidak perlurm -f
.