在Unix/Linuxshell中模式匹配时,如何使用逆通配符或负通配符?假设我想复制一个目录的内容,不包括名字包含单词‘Music’的文件和文件夹。cp [exclude-matches] *Music* /target_directory应该用什么代替[排除-匹配]来完成这一任务?
3 回答
ITMISS
TA贡献1871条经验 获得超8个赞
在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
之后,您可以用
shopt -u extglob
蛊毒传说
TA贡献1895条经验 获得超3个赞
cp `ls | grep -v Music` /target_directory
- 3 回答
- 0 关注
- 435 浏览
添加回答
举报
0/150
提交
取消