Pertanyaan ini sudah memiliki jawaban di sini :hapus file terlama
(8 jawaban)
Tutup 5 tahun yang lalu.
Linux
(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
Jumlah Baris Dikeluarkan Oleh Ls?
Bagaimana Cara Mengecualikan Perintah Dari Daftar Sejarah, Tetapi Menyimpannya Dalam Sejarah "langsung"?