GNU/Linux >> Belajar Linux >  >> Linux

Skrip Bash untuk menghapus file terlama dari folder

Seperti yang ditunjukkan Kos, Mungkin tidak mungkin untuk mengetahui file terlama (sesuai tanggal pembuatan).

Jika waktu modifikasi cocok untuk Anda, dan jika nama file tidak memiliki baris baru:

rm "$(ls -t | tail -1)"

Sepertinya Anda baik-baik saja dengan menghapus file terlama yang dimodifikasi alih-alih file terlama yang dibuat;

Saya menganggap ini sebagai metode teraman, karena tidak akan merusak nama file yang berisi baris baru:

stat --printf='%Y %n\0' * | sort -z | sed -zn '1s/[^ ]\{1,\} //p' | xargs -0 rm
  • stat --printf='%Y %n\0' * :mencetak daftar waktu modifikasi terakhir yang dipisahkan NUL diikuti dengan jalur file untuk setiap file di direktori kerja saat ini;
  • sort -z :mengurutkan daftar menggunakan NUL sebagai pemisah baris;
  • sed -zn '1s/[^ ]\{1,\} //p' :menghapus kejadian pertama dari string yang berisi satu atau lebih karakter bukan spasi diikuti dengan spasi dari baris pertama yang diakhiri NUL dan mencetaknya;
  • xargs -0 rm :meneruskan baris yang diakhiri NUL ke rm sebagai argumen;
% touch file1
% touch file2
% stat -c '%Y %n' *            
1447318965 file1
1447318966 file2
% stat --printf='%Y %n\0' * | sort -z | sed -zn '1s/[^ ]\{1,\} //p' | xargs -0 rm 
% ls
file2

Linux
  1. Bisakah Skrip Bash Dihubungkan ke File?

  2. Buka Vim dari dalam skrip Bash Shell

  3. Hapus baris tertentu dari file riwayat Bash

  1. Mengapa Skrip Bash Tidak Mengenal Alias?

  2. Basa'?

  3. Bash Script Untuk Menghapus File Terlama Dari Folder A?

  1. Bagaimana Cara Menghapus Bom Dari File Utf-8?

  2. Tidak Dapat Mendapatkan Kode Keluar yang Tepat Dari Script?

  3. Menginstal Program Dari Script Bash?