查找和删除文件,但不是特定路径

时间:2015-06-29 18:20:31

标签: linux bash shell automation find

我正在编写一个脚本来清理“/ 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

所以我尝试用ls替换rm

/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} ,但没有区别。

任何人都知道我在这里失踪了什么?

由于

1 个答案:

答案 0 :(得分:1)

' -type f'意味着您将只获得文件。并且您的输出显示:在来自echo命令的文件夹名称之后,仅显示文件。 除非您想保留用户文件夹,否则您不希望' -mindepth 1'选项;它并没有改变' -type f'

这一事实