我正在编写一个脚本来清理“/srv”上的用户目录。目前每个用户都在“/srv/$USER”上保存一些临时文件。
以下是我的脚本:
for x in $(cut -d: -f1 /etc/passwd); do
if [ -d "/srv/${x}" ]; then
echo "/srv/${x}"
find /srv/${x} -mindepth 1 -type f -not -amin -10080 -exec rm {} \;
fi
done
所以我尝试用这个脚本将 rm 替换为 ls
/srv/abc
/srv/abc/2015-04-20-11-multi-interval.json
/srv/abc/2015-04-20-10-mimic.json
/srv/xyz
/srv/xyz/magnetic_hadoop/fabfile.py
这里我想排除父目录/srv/abc并且只删除文件,所以我添加了-mindepth 1,但我还是没有得到什么我要。
然后我添加了 -not -path/srv/${x} 但没有区别。
有人知道我在这里错过了什么吗?
谢谢
最佳答案
'-type f' 意味着您将只获得文件。并且您的输出显示:在来自 echo 命令的文件夹名称之后,仅显示文件。 除非你想完整地保留用户文件夹,否则你不需要“-mindepth 1”选项;它不会改变 '-type f' 的事实
关于linux - 查找并删除文件但不是特定路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31122816/