GNU/Linux >> Belajar Linux >  >> Linux

Skrip Bash untuk menghapus semua file kecuali N saat diurutkan menurut abjad

Baris berikut akan melakukan triknya.

ls -F world*.zip | head -n -5 | xargs -r rm
  • ls -F :Buat daftar file menurut abjad
  • head -n -5 :Menyaring semua baris kecuali 5 baris terakhir
  • xargs -r rm :hapus setiap file yang diberikan. -r :jangan jalankan rm jika masukan kosong

Saya tidak dapat mengujinya sekarang karena saya tidak memiliki mesin Linux, tetapi menurut saya seharusnya:

rm `ls -A | head -5`

Bagaimana dengan ini:

find /your/directory -name 'world*.zip' -mtime +5 | xargs rm

Uji itu sebelumnya. Ini harus menghapus semua world*.zip file yang lebih lama dari 5 hari. Jadi logika yang berbeda dari yang Anda miliki.


Linux
  1. Bagaimana Cara Mengatur Parameter Saat Pipa Bash Script Ke Bash?

  2. Cara gzip semua file di semua sub-direktori di bash

  3. Bagaimana cara menghapus semua file dalam folder, tetapi tidak menghapus folder menggunakan pustaka standar NIX?

  1. Hapus semua file kecuali 3 terbaru dalam skrip bash

  2. Transfer file menggunakan lftp dalam skrip bash

  3. Perintah Conda bekerja di command prompt tetapi tidak di skrip bash

  1. Apa yang salah dengan skrip bash saya untuk menyimpan file x terakhir dan menghapus sisanya?

  2. Skrip Bash untuk menghapus file yang lebih lama dari x hari dengan subdirektori

  3. Izinkan semua pengguna membuat file dalam direktori, tetapi hanya pemiliknya yang dapat menghapus