以下脚本适用于单个文件夹,但我想遍历所有子目录。
ls /home/user/Desktop/cron_database_hourly/*/*_[012][0-9]*.zip | head -n -1 | \
while read -r f; do rm "$f"; done
答案1
你也许可以尝试以下类似方法(未经测试)-
for each in `find -type d /home/usr/Desktop/cron_database/hourly`
do
ls -t $each/_[012][0-9]*.zip | head -n -1 | \ while read -r f;
do
rm "$f"
done
done
“for each”将循环查找所有目录的列表,并且向 ls 添加“-t”将使其按日期顺序排序 - 最新的排在第一位。