删除所有内容的脚本,但保留所有子目录的一个最新备份文件

删除所有内容的脚本,但保留所有子目录的一个最新备份文件

以下脚本适用于单个文件夹,但我想遍历所有子目录。

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”将使其按日期顺序排序 - 最新的排在第一位。

相关内容