Unix magic, hapus semua file .pyc dari pohon direktori?


11

Apakah ada cara cepat untuk menghapus semua file .pyc dari pohon direktori?

Jawaban:


28

Jika Anda mendapatkan GNU, maka Anda mungkin menginginkannya

find <directory name> -name '*.pyc' -delete

Jika Anda membutuhkan sesuatu yang portabel maka Anda lebih baik

find <directory name> -name '*.pyc' -exec rm {} \;

Jika kecepatan adalah masalah besar dan Anda punya GNU find dan GNU xargs

find <directory name> -name '*.pyc' -print0|xargs -0 -p <some number greater than 1> rm

Ini tidak mungkin memberi Anda kecepatan yang lebih tinggi, karena Anda sebagian besar akan menunggu di I / O.


sempurna ... terima kasih. Ini adalah xargs yang selalu saya lupakan
interstar

2
Kalau-kalau saya punya file dengan spasi di namanya, saya sudah terbiasa menggunakan -print0 dan "xargs -0".
Paul Tomblin

Anda sepenuhnya benar, seharusnya memikirkan hal itu semula., Diedit untuk mencerminkan hal itu.
Cian

4
Anda juga dapat langsung menggunakan '-delete' alih-alih '-print0 | xargs -0 rm '. Tapi itu benar bahwa opsi ini tidak ada di semua versi 'temukan'.
rolaf

6

menggunakan perintah find:

find /path/to/start -name '*.pyc' -exec rm -f {} \;

Itu terlalu lambat. Menggunakan xarg lebih cepat, atau jika versi pencarian Anda mendukungnya, ubah " \;" di akhir menjadi " +".
Dijeda sampai pemberitahuan lebih lanjut.

1
Ini mungkin sedikit lebih lambat - ia menjalankan "rm" sekali untuk setiap file alih-alih menumpuknya - tetapi ini adalah cara yang paling portabel untuk melakukannya. OP tidak mengatakan jenis unix apa yang dia gunakan, dan Solaris masih belum memiliki fitur -print0.
Kenster

1
+1, OP mengatakan unix bukan linux, ini adalah solusi portabel terbaik.
theotherreceive

Saya pikir solusi ini adalah satu-satunya yang memungkinkan untuk menghapus banyak file, jika saya tidak salah menggunakan xargs dapat meninggalkan kesalahan pada baris perintah terlalu lama. +1, itu juga pilihan saya sejak bertahun-tahun.
drAlberT

Jika Anda menggunakan makefile untuk membangun proyek Anda, Anda mungkin ingin menambahkan ini ke target "clean".
Tom Newton

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.