Có một số chủ đề khác nhau về stackoverflow liên quan đến tìm/xóa thư mục/tệp cũ nhất trong một thư mục. Tôi đã đọc rất nhiều trong số họ và nhìn thấy vô số cách khác nhau mà rõ ràng là làm việc cho một số người trên các hệ thống khác nhưng không phải cho tôi trong trường hợp cụ thể của tôi.xóa tất cả trừ X thư mục cũ nhất trên FreeBSD qua Bash (không có dấu vân tay, có dấu cách, không zsh)
Các trở ngại là:
- Im trên FreeBSD (Freenas 9,3)
- Thư mục có khoảng trống trong đó
- Dont sử dụng ls (http://mywiki.wooledge.org/ParsingLs)
- có thể không sử dụng -printf của find (doesnt tồn tại cho tôi)
Gần nhất tôi đã nhận là một cái gì đó như thế này (không hoàn thành):
find . -maxdepth 1 -d -name "Backup Set*" -print0 | xargs -0 stat -f "%m %N" | sort -r| awk 'NR>5'
Điều này mang lại cho tôi các thư mục mà tôi muốn xóa, nhưng bây giờ tôi không chắc chắn nếu tôi thoát ra khỏi đường dẫn và đường dẫn đến rm tôi sẽ trở lại tình huống không thể xóa thư mục với không gian trong đó.
đầu ra:
1450241540 ./Backup Set1
1450241538 ./Backup Set0
Nhờ sự giúp đỡ ở đây.
bài viết liên quan mà tôi đã xem xét:
https://superuser.com/questions/552600/how-can-i-find-the-oldest-file-in-a-directory-tree
Bash scripting: Deleting the oldest directory
Delete all but the most recent X files in bash
làm 'cái stat 'đầu ra cho phép bạn đặt thêm dấu ngoặc kép, tức là 'stat -f"% m \ "% N \%" "'? Tốt Q, Chúc may mắn. – shellter