在 zsh 中使用 cut delim
Using cut delim with zsh
我正在清理使用查询缓存字符串下载的文件。这些文件看起来像:
frontend-legacy.min.css?ver=3.2.4.css
运行 我 运行 此代码在 Bash shell 中,它工作正常并从中删除了“?ver=3.2.4.css”文件。
for i in `find ./build -type f -name "*\?*"`; do mv -f $i `echo $i | cut -d? -f1`; done
运行 我 运行 它在 ZSH shell “cut -d?”正在抛出错误。为什么分隔符在 ZSH 中不起作用?
?
是一个 glob 字符。 -d?
尝试扩展到工作目录中所有以 -d
开头且多一个字母的文件名。如果没有这样的文件,会发生什么取决于你如何配置你的 zsh:它可能会静默地将 -d?
字符串传递给应用程序,或者它可能会输出一条错误消息。
这适用于所有通配符(例如*
和[
)。如果你想按字面意义使用它们,你需要引用或转义它们。例如,写 -d\?
就可以了。
我正在清理使用查询缓存字符串下载的文件。这些文件看起来像:
frontend-legacy.min.css?ver=3.2.4.css
运行 我 运行 此代码在 Bash shell 中,它工作正常并从中删除了“?ver=3.2.4.css”文件。
for i in `find ./build -type f -name "*\?*"`; do mv -f $i `echo $i | cut -d? -f1`; done
运行 我 运行 它在 ZSH shell “cut -d?”正在抛出错误。为什么分隔符在 ZSH 中不起作用?
?
是一个 glob 字符。 -d?
尝试扩展到工作目录中所有以 -d
开头且多一个字母的文件名。如果没有这样的文件,会发生什么取决于你如何配置你的 zsh:它可能会静默地将 -d?
字符串传递给应用程序,或者它可能会输出一条错误消息。
这适用于所有通配符(例如*
和[
)。如果你想按字面意义使用它们,你需要引用或转义它们。例如,写 -d\?
就可以了。