Jika Anda ingin melakukan lebih dari sekadar menghapus direktori secara paralel, Anda dapat melakukan banyak hal paralel dengan paralel GNU. Karena seringkali bukan utilitas dasar dalam distribusi, Anda mungkin perlu menginstalnya menggunakan pengelola paket favorit Anda, mis. apt-get install parallel
.
Tapi kemudian, Anda dapat melakukan hal-hal keren seperti ini, katakanlah Anda menjalankan 4 proses paralel, ingin menunjukkan progresnya, tanpa pemberitahuan cerewet dan membiarkan secara paralel menjalankan perintah tidur menunggu masing-masing 5 detik, 10 detik, 15 detik, 20 detik.
$ parallel -j 4 --progress --no-notice sleep ::: 5 10 15 20
Computers / CPU cores / Max jobs to run
1:local / 4 / 4
Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
local:0/4/100%/5.0s
Contoh Anda akan berjalan seperti ini:
$ parallel --no-notice rm -rf ::: dir1 dir2 dir3
Jangan ragu untuk berkonsultasi dengan tutorial yang bagus.
Saya harus membersihkan beberapa folder di /media secepat mungkin.
Perintah berikut dapat menghapus 9T data pada masing-masing dari 80 disk dalam waktu sekitar 5 menit
$ sudo find /media -maxdepth 2 -name "data-8" -type d | while read folder; do eval "sudo rm -rf ${folder} &"; done
Ini menendang 80 paralel rm -rf
di latar belakang
Jalankan perintah di latar belakang
rm -rf dir &; rm -rf dir2 &;
sintaks
long_command with arguments > redirection &
Anda dapat menangkap pesan apa pun dengan mengarahkan keluaran perintah ke file.
Tautan ini akan membantu ==> http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html
Sunting :
Judul pertanyaan &contoh yang diberikan memberikan kesan bahwa masalahnya sangat kecil. Namun hadiah tambahan menunjukkan keseriusan masalah tersebut.
Akan lebih baik jika Anda menentukan sifat file Anda. Namun, saya menyediakan beberapa penghapusan berbasis pemisahan yang dapat diterapkan sebagai eksekusi paralel. Anda dapat mencoba opsi di bawah berdasarkan kebutuhan Anda.
find /yourpath/folder1 -size +1048576 -exec rm -f {} \; &
find /yourpath/folder2 -size +1048576 -exec rm -f {} \; &
ls -l /yourpath/folder1 | awk '{print $9}' | awk -F. '{print $(NF)}' |sort |uniq
Anda mungkin mendapatkan hasil seperti
.txt
.log
.tmp
.zip
sekarang, hapus file berdasarkan ekstensi
find yourpath/folder1 -name '*.txt' -exec rm {} \; &
find yourpath/folder1 -name '*.tmp' -exec rm {} \; &
find yourpath/folder1 -name '*.log' -exec rm {} \; &
find yourpath/folder2 -name '*.txt' -exec rm {} \; &
find yourpath/folder2 -name '*.tmp' -exec rm {} \; &
find yourpath/folder2 -name '*.log' -exec rm {} \; &
find yourpath/folder1 -mtime +5 -exec rm {} \;
ATAU
find yourpath/folder2 -mtime +5 |xargs rm
find foldername -exec rm -rf {} \; &