如何将文件夹下的所有文件转换为MV,排除某些指定文件

时间:2019-05-13 14:49:33

标签: bash macos

我正在使用MACOS,并且想使用mv命令将所有* .csv文件从文件夹 / Users / abc / Downloads / 移至 / Users / abc / idea-workspace / tofolder / csvfiles 。 但是我需要排除任何包含“(”的文件名,例如“ filename(1).csv”。这些文件是重复的下载文件。因此,我不希望将它们移至/ tofolder / csvfiles。 我的问题是如何排除这些包含“(”的文件。 谢谢

我尝试使用“!()”排除这些文件,但不起作用。即使我以前使用过命令。

shopt -s extglob
mv -f /Users/abc/Downloads/*.csv /Users/abc/idea-workspace/tofolder/csvfiles

1 个答案:

答案 0 :(得分:2)

演示一个有效的extglob :

mkdir -p "/tmp/$$" && cd "/tmp/$$"
touch {foo,bar}{'(1)',}.csv
shopt -s extglob
printf '%q\n' !(*[()]*).csv

...正确发射:

bar.csv
foo.csv

因为您没有显示无效的extglob,所以我们无法说明原因。