Bagaimana cara saya menghapus semua file yang lebih kecil dari ukuran tertentu di semua subfolder?


88

Saya memiliki folder dengan banyak sub-folder yang berisi file tif kecil (kurang dari 160kb) yang telah digabung bersama dalam file pdf yang lebih besar, bersama dengan beberapa file tif multi-halaman besar.

Saya ingin menghapus semua file tif kecil tanpa menghapus file yang lebih besar (tif atau pdf) dan mempertahankan struktur direktori. Bagaimana saya melakukannya di Linux menggunakan command-line?

Jawaban:


155
find . -name "*.tif" -type 'f' -size -160k -delete

Jalankan perintah tanpa -deleteterlebih dahulu untuk memverifikasi bahwa file yang benar ditemukan.

Perhatikan -sebelumnya 160k. Hanya 160kberarti persis 160 kilobyte. -160kberarti lebih kecil dari 160 kilobyte. +160kberarti lebih besar dari 160 kilobyte.

Perintah -type 'f'memaksa untuk hanya bertindak pada file dan melewati direktori. ini akan menghindari kesalahan jika path berisi folder dengan nama yang cocok dengan pola *.tif.

Jika Anda ingin menyaring ukuran dalam bytes (seperti dalam 160 byte bukan 160 kilobyte) maka Anda harus menulis seperti ini: 160c. Jika Anda baru saja menulis 160itu akan ditafsirkan sebagai 160 * 512 byte. Ini adalah persyaratan aneh oleh POSIX. Baca di sini untuk rincian lebih lanjut: https://unix.stackexchange.com/questions/259208/purpose-of-find-commands-default-size-unit-512-bytes


Halaman manual ubuntu sepertinya menyebutkan ini. Tepat di bawah bagian "UJI": Argumen numerik dapat ditentukan sebagai + n untuk lebih besar dari n, -n untuk kurang dari n, n untuk tepat n.
— jdg

1
Terima kasih. tidak terpikir oleh saya bahwa informasi itu mungkin berada di tempat lain di halaman manual.
— lesmana

Sangat menyenangkan perintah ini juga bekerja secara rekursif. Kasus penggunaan saya adalah menghapus file .txt di bawah 12kB.
— Sun

tidak perlu untuk sudo?
— Jean-François Gagnon

11
Untuk ukuran dalam byte, tentukan 50c, bukan 50b atau 50!
— Evengard
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.