我有以下目录结构。
drwxr-xr-x 5 ec2-user ec2-user 4096 May 22 07:03 TEEST
drwxr-xr-x 5 ec2-user ec2-user 4096 May 24 05:33 BEE-TES
drwxr-xr-x 5 ec2-user ec2-user 4096 May 24 10:53 ONE
drwxr-xr-x 5 ec2-user ec2-user 4096 May 25 09:50 TWO
lrwxrwxrwx 1 ec2-user ec2-user 28 May 25 09:50 previous -> TWO
drwxr-xr-x 5 ec2-user ec2-user 4096 Jun 1 11:00 TEMP
lrwxrwxrwx 1 ec2-user ec2-user 28 Jun 1 11:00 Current -> TEMP
如何保留或保存最近修改的最后两个目录(包括符号链接及其指向它们的各自目录)?
我已经尝试了这篇文章中的解决方案 如何删除除符号链接指向的目录之外的所有目录
但是那个甚至删除了指向符号链接的目录,只保留了损坏的符号链接。
提前致谢。
答案1
解析的输出被认为是不好的形式ls
,但是如果您使用普通文件名,您可以尝试以下方式:
#!/bin/bash
qty_keep=2
count=0
ls -t | while read name ; do
if [ $count -lt $qty_keep ] ; then
if [ -d "$name" ] ; then
count=$((count+1))
echo "Keeping dir nr $count: $name"
else
echo "$name is not a dir; skipping"
fi
else
if [ -d "$name" ] ; then
count=$((count+1))
echo "Removing dir nr $count: $name"
# rm -rf "$name"
else
echo "$name is not a dir; skipping"
fi
fi
您可能已经猜到了,除非您取消注释该rm
行,否则这不会执行任何操作,但您应该尝试使用注释进行第一次试运行,以查看它是否执行了您想要的操作。