我有一些BackUp-Files来自将其备份存储在不同文件夹中的计算机。此外,文件不是同时创建的(机器1:每个星期日,机器2:每个月的第一个星期一等)。
我需要在每个文件夹中保留最新的10个文件并删除所有其他文件。由于备份间隔不同,我不能只删除超过x天的所有文件。
文件夹结构如下:
./<SystemType>/<FQDN_Machine1>/backup_2015_09_08_02_00_00.zip
./<SystemType>/<FQDN_Machine2>/backup_2015_09_01_14_00_00.zip
答案 0 :(得分:0)
IFS='
'
for i in dir/*; do
ls -d1t $i/* | head -n-10
done | xargs rm
列出除最近十个之外的所有子目录,并按xargs
发送给rm
。
答案 1 :(得分:0)
这是我的解决方案:
#!/bin/bash
cat find ./ -type f | while IFS= read -r line
do
find "$line" -type f | head -n -10 | while read file
do
rm -f "$file"
done
done