【问题标题】:How to use variable as a path for find command如何使用变量作为查找命令的路径
【发布时间】:2016-04-18 03:19:12
【问题描述】:

谁能给我一个提示,我怎样才能使以下 bash 脚本正常运行:

path="/path/"
excludepath="! -path \"/path/to/exclude/*\" "

find "$path" "$excludepath" -name *."txt" -type f

当我尝试运行它时,我得到:

find: `! -path "/path/to/exclude/*"': No such file or directory

提前谢谢你。

【问题讨论】:

  • 你到底是什么意思?根路径是 $path, /path/。还是我错了?
  • Derp,没关系,选择性失明。

标签: string variables path find


【解决方案1】:

您的问题是"$excludepath" 是一个单一参数,即使它包含空格。要放置多个参数,请使用字符串数组而不是字符串:

excludepath=(! -path "*webshow*")
find "$path" "${excludepath[@]}" -name "*.txt" -type f

不过,这是一种 bashism(偶然发现这一点并且不使用 bash 的人将需要做其他事情)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    相关资源
    最近更新 更多