linux - 查找并删除文件但不是特定路径

标签 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

所以我尝试用这个脚本将 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/

相关文章:

linux - 针对嵌入式 Linux 设备的存储高效远程文件完整性检查

java - 如何修复这段代码中烦人的白色飞溅?

shell - Grep Shell 脚本 : How do I Count the Number of Occurrences of Each Substring?

linux - 查找指向特定目录或其子目录之一的符号链接(symbolic link)

c++ - 获取网络上事件 IP 的列表 (Linux)

c - 在c中实现ls命令

bash - 如何使用 Bash "read"命令进行安全读取?

linux - 是否有 'git sed' 或等价物?

linux - Bash - 写入 visudo

bash - grep 从屏幕输出并分离