GNU/Linux >> Belajar Linux >  >> Linux

Hapus Semua File Dalam Satu Folder Kecuali Yang Terakhir (Terbaru) 20?

Pertanyaan ini sudah memiliki jawaban di sini :hapus file terlama

(8 jawaban)
Tutup 5 tahun yang lalu.

Saya ingin menghapus semua file dari direktori yang berbeda, dan hanya ingin menyimpan file terbaru 20 file.
apakah ini perintah yang benar untuk melakukan ini?

ls -t1 /mnt/dwh/ftp/dwh_ftp_cbs/ARLOGS/ | tail -n +22 | xargs rm -f

Jawaban yang Diterima:

Dengan zsh dan glob-qualifier:

print -rl -- *(D.Om[1,-21])

akan mencantumkan semua file biasa kecuali yang terakhir (terakhir dimodifikasi) dua puluh.
D memilih file tersembunyi, . hanya memilih file biasa, Om berarti urutkan terbalik berdasarkan mtime (jadi yang tertua duluan) dan [1,-21] pilih dari yang pertama hingga yang ke-21 hingga terakhir.
Jika Anda puas dengan hasilnya, ganti print -rl dengan rm :

rm -- *(D.Om[1,-21])

Jika Anda memiliki banyak file, Anda mungkin harus menggunakan zargs untuk menghindari daftar argumen terlalu panjang :

autoload zargs
zargs ./*(D.Om[1,-21]) -- rm

Linux
  1. 3 Cara Menghapus Semua File di Direktori Kecuali Satu atau Beberapa File dengan Ekstensi

  2. Hapus Semua File Kecuali Di Subdirektori Tertentu Dengan Temukan?

  3. Cetak Semua File Dalam Folder?

  1. Ganti Semua Baris Baru Ke Spasi Kecuali Yang Terakhir?

  2. Dapatkan Semua File Tapi File Dalam Array – Bash?

  3. Bagaimana menemukan semua file yang jarang di Linux

  1. Pindahkan semua file kecuali satu

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

  3. Hapus semua file kecuali 3 terbaru dalam skrip bash