小编Lor*_*sum的帖子

修改 zsh 通配模式以与 cp 一起使用

我想编写一个脚本来从一个特定的文件夹递归复制文件除文件A.extnB/*.extnC/*在那里BC在目录和extn仅仅是一些通用的扩展。这就是我所拥有的:

#!/usr/local/bin/zsh
setopt EXTENDED_GLOB
TMPDIR=/tmp/test

cp -pR $(dirname $0)/**~(*.foo/*|*/bar.txt|*.abc|qux.txt) $TMPDIR
Run Code Online (Sandbox Code Playgroud)

然而,这并没有像预期的那样否定模式。我想我知道为什么——尽管模式是正确的(如 所示echo),但cp -R不知道该模式,并进入了一个“不应该”的目录,一旦进入,该模式就不再有效。

如何修改上述内容以执行我想要的操作?我想用findand是可能的xargs,但我被上面的清晰度所吸引,并且更喜欢类似的东西(但如果这是错误的方法,我会非常满意不同的解决方案)。

zsh shell-script file-copy patterns glob

5
推荐指数
1
解决办法
596
查看次数

标签 统计

file-copy ×1

glob ×1

patterns ×1

shell-script ×1

zsh ×1