GNU/Linux >> Belajar Linux >  >> Linux

Temukan Dan Hapus File Terlama Jika Ada Lebih dari X File Dalam Direktori Di Linux

Saya memiliki banyak film di hard drive saya dan saya telah menyimpannya di folder yang berbeda berdasarkan genre film. Sekarang, saya hanya ingin menyimpan sejumlah file film tertentu dalam direktori, dan menghapus yang lainnya. Lebih penting lagi, saya hanya ingin menghapus file terlama. Dengan cara ini saya dapat mempertahankan jumlah file yang konstan di setiap folder. Karena saya memiliki begitu banyak file yang tersebar di banyak folder, proses yang cukup memakan waktu untuk pergi ke setiap folder, mencari file terlama dan menghapusnya satu per satu secara manual. Sambil mencari cara mudah untuk melakukan ini, saya menemukan solusi berikut. Baca terus. Tidak terlalu sulit.

Menemukan dan menghapus file terlama dalam direktori di Linux

Katakanlah, Anda ingin mencari dan menghapus file terlama jika ada lebih dari 10 file dalam sebuah direktori. Bagaimana Anda melakukannya? Ini sangat sederhana.

Ambil direktori berikut bernama ostechnix sebagai contoh. Mari kita periksa berapa banyak file yang ada di direktori ini menggunakan perintah:

$ find ostechnix/ -type f | wc -l

Atau cd ke direktori itu dan jalankan:

$ ls | wc -l

Contoh keluaran:

33

Seperti yang Anda lihat pada contoh di atas, direktori ostechnix berisi 33 file. Saya tidak ingin 33 file di direktori ini. Saya ingin menghapus semua file terlama dan hanya menyimpan 10 file.

Sekarang, mari kita cari dan hapus file terlama di direktori ini jika berisi lebih dari 10 file. Untuk melakukannya, buka direktori itu:

$ cd ostechnix

Dan, jalankan perintah berikut:

$ ls -1t | tail -n +11 | xargs rm

Atau,

$ ls -1t | tail -n +11 | xargs rm -f

Dimana,

  • ls :Daftar isi direktori.
  • -1t :  1(Nomor satu ) menunjukkan bahwa keluaran dari ls harus satu file per baris. t menunjukkan mengurutkan konten berdasarkan waktu modifikasi, yang terbaru terlebih dahulu.
  • tail :Output bagian terakhir dari file.
  • -n +11 :menampilkan NUM baris terakhir, bukan 10 baris terakhir; atau gunakan -n +NUM untuk menghasilkan yang dimulai dengan baris NUM
  • xargs :Bangun dan jalankan baris perintah dari input standar.
  • rm -f :Menghapus file atau direktori. f menunjukkan abaikan file dan argumen yang tidak ada, jangan pernah meminta. Artinya, perintah ini tidak akan menampilkan pesan kesalahan jika jumlah file kurang dari 10.
  • | - Ini adalah pipa. Biasanya merupakan urutan dari satu atau lebih perintah yang dipisahkan oleh salah satu operator kontrol | atau |& .

Jadi, perintah di atas akan menghapus file terlama jika ada lebih dari 10 file di direktori kerja saat ini. Untuk memverifikasi berapa banyak file dalam direktori setelah menghapus file terlama, jalankan saja:

$ ls | wc -l

Pembaruan:

Jika nama file berisi spasi, perintah di atas tidak akan berfungsi. Karena, xargs perintah mengambil karakter spasi putih (tab, spasi, baris baru) sebagai pembatas. Dalam hal ini, Anda dapat mempersempitnya hanya untuk karakter baris baru ('\n' ) dengan -d pilihan seperti di bawah ini:

$ ls -1t | tail -n +11 | xargs -d '\n' rm -f

Semoga membantu.

Bacaan yang Disarankan: 

  • Cara Menemukan Dan Menghapus File Lebih Lama Dari X Hari Di Linux
  • Hapus Berkas Yang Belum Diakses Selama Beberapa Waktu Di Linux

Linux
  1. Cara Menghapus File dan Direktori di Linux dari Command Line

  2. Cara Menemukan File Di Linux Di Semua Direktori Secara Rekursif

  3. Cara menemukan dan menghapus file yang lebih lama dari periode waktu tertentu di Linux

  1. Cara Menemukan dan Menghapus Direktori dan File Kosong di Linux

  2. temukan dan hapus file atau folder yang lebih lama dari x hari

  3. Bagaimana Anda menghapus file yang lebih lama dari tanggal tertentu di Linux?

  1. Temukan file dan direktori di Linux dengan perintah find

  2. Ganti Nama Semua File dan Nama Direktori menjadi Huruf Kecil di Linux

  3. Cara Menemukan File Terlama Di Pohon Direktori Di Linux