我希望有一个脚本删除某些目录中超过 90 天的文件。如图所示,有 8 个目录,它们的路径不同。
我可以在一个目录上运行 find 命令,如下所示:
find /directory1/dir2/dir3/dir4/ -mtime +90 | wc -l
该命令将给出类似 6401 的结果。
但我有8个目录需要翻阅。我如何构建一个目录列表作为变量。我有:
variable
DIRLIST=/directory1/dir2/dir3/dir4/ /directory1/dir2/dir3/dir5/ /directory1/dir2/dir3/dir6/ /directory1/dir2/dir3/dir6/ /directory1/dir2/dir3/dir7/
command
find $DIRLIST | wc -l
输出给了我一些类似的东西:
nameofscript.sh[2]: /directory1/dir2/dir3/dir5/: 0403-006 执行权限被拒绝。
这很奇怪,因为当我在 find 命令中单独调用该目录时,该命令有效,所以我知道它实际上不是权限问题。
任何帮助将不胜感激。
答案1
您错误地声明了 $DIRLIST
这是声明数组变量的方法
DIRLIST=(/directory1/dir2/dir3/dir4/ /directory1/dir2/dir3/dir5/ /directory1/dir2/dir3/dir6/ /directory1/dir2/dir3/dir6/ /directory1/dir2/dir3/dir7/)
然后运行查找命令:
find "${DIRLIST[*]}" | wc -l