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.