-1

以下のコマンドは、 *string で終わるすべての隠しファイル/通常ファイルを なしで移動します。またはその前に_。

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

上記のコマンドですべてのディレクトリの移動を除外するにはどうすればよいですか?

4

2 に答える 2

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部分の後)。

于 2013-02-08T08:17:33.010 に答える
0

どうですか:

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

[!._]で使用すると、グロブは実際にどのシェルで動作し{.,}ますか? {}おそらく、表記を避けて次のことを行う方がよいでしょう。

for file in .*[!._]string *[!._]string; do ... ; done
于 2013-02-08T14:39:00.320 に答える