我开发了一个备份shell脚本,它基本上将一个文件复制到另一个目录,并在其上附加一个时间戳,粘合在一起构成一个数字。
有这样的效果。
cp file1 directory/{file1##*/} - {date +'%Y%m%d%H%M%S'}
现在,想象一下我有'file1 - 20151009141528'和许多其他file1备份。如何比较它们并删除日期构成最小数字的那个?
老实说,这是我的最后一招。我尝试过并试过但无济于事!
非常感谢提前!
编辑:
我想去找像
这样的东西for item in "$directory1"
do
if *number of file1 - 20151009141528 is smaller than all remaining backup files, remove*
done
答案 0 :(得分:0)
我只是使用类似sort -k3 -r
的排序按时间戳对它们进行排序,并使用tail tail -n 1
显示最后一个。它对你有帮助吗?
答案 1 :(得分:0)
您可以在备份文件所在的目录中运行此命令:ls|sort -V |head -n 1 |xargs rm
。它会对您的文件进行排序,然后选择正确的文件并将其删除。此命令不关心文件是最旧的还是最新的。它根据sort
删除最小值。如果要在脚本中运行它。只需导航到您的目录,然后运行该命令。像是这样的事情:
cd /path/to/directory;
ls|sort -V |head -n 1 |xargs rm;