如何设置具有多个目录路径的预定义变量以与 find 命令一起使用

如何设置具有多个目录路径的预定义变量以与 find 命令一起使用

我希望有一个脚本删除某些目录中超过 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

相关内容