假设我想复制目录的内容,但不包括名称包含“音乐”一词的文件和文件夹。

cp [exclude-matches] *Music* /target_directory

应该用什么代替 [exclude-matches] 来实现这一点?

最佳答案

在 Bash 中,您可以通过启用 extglob 选项来实现,就像这样(当然,将 ls 替换为 cp 并添加目标目录)

~/foobar> shopt extglob
extglob        off
~/foobar> ls
abar  afoo  bbar  bfoo
~/foobar> ls !(b*)
-bash: !: event not found
~/foobar> shopt -s extglob  # Enables extglob
~/foobar> ls !(b*)
abar  afoo
~/foobar> ls !(a*)
bbar  bfoo
~/foobar> ls !(*foo)
abar  bbar

您可以稍后禁用 extglob
shopt -u extglob

关于bash - 在 unix/linux shell 中进行模式匹配时,如何使用反向通配符或负通配符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/216995/

10-14 16:29