排除目录mv unix

时间:2013-02-08 06:41:38

标签: linux shell unix command-line-interface

下面的命令移动每个以* string结尾的隐藏/普通文件。或_之前。

 mv {.,}*[!._]string /destination

如何在上述命令中排除移动所有目录?

2 个答案:

答案 0 :(得分:1)

尝试

find /WHERE/TO/FIND -name '*STRING' \( ! -name '*_STRING' -o ! -name '*.STRING' \) -type f -exec mv \{\} /WHERE/TO/MOVE \;

注意,如果您想仅从/WHERE/TO/FIND目录移动每个文件,则应添加-maxdepth 1(例如-type f部分之后)。

答案 1 :(得分:0)

怎么样:

for file in {.,}*[!._]string; do test -f "$file" && mv "$file" /destination; done

[!._]一起使用时,{.,} glob实际上在什么shell中?你可能最好避免使用{}表示法并执行:

for file in .*[!._]string *[!._]string; do ... ; done