find . -maxdepth 1 ! -path . -type f ! -name "*.gz" ${FILE_PATTERN} -mtime +${DAYS_AFTER_ARCHIVE}
我尝试在脚本内执行上述命令,其中 ${FILE_PATTERN}
和 ${DAYS_AFTER_ARCHIVE}
是执行脚本时提供的变量。 ${FILE_PATTERN}
的变量值为 ! -名称“*警告*”
。
我正在寻找执行上面的命令,就像脚本中的下面的命令
find . -maxdepth 1 ! -path . -type d ! -name "*warnings*" -mtime +7
我提供的文件模式参数为“!-name“警告”” 但收到以下错误消息
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]
根据上面的建议。
最佳答案
首先
-name "*.gz" ${FILE_PATTERN}
选项值太多(这通常是导致显示消息的原因)
如果您使用 bash 或类似的语言,请避开感叹号
find . -maxdepth 1 \! -path . -type f \! -name "*.gz" ${FILE_PATTERN} -mtime +${DAYS_AFTER_ARCHIVE}
I am providing file pattern argument as "! -name "warnings"" but receiving following error message
你不能像这样组合标志和它们的值。另外,你不能像这样嵌套"
。所以,它可能是这样的
! -name "$FILE_PATTERN"
关于linux find 命令没有采用正确的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30708827/