2009-04-22 25 views
7

は、現在のディレクトリの特定のパターンに一致するすべてのファイルを別のディレクトリに移動します。ディレクトリにファイルを移動する

たとえば、nzで始まるすべてのファイルをfoobarというディレクトリに移動するにはどうすればよいですか?私はmvを使ってみましたが、うまくいきませんでした。

+1

どのようにプログラミング関連ではないこれを行うbashスクリプトを書くのですか? – RobS

+0

どのように彼の問題を解決するために必要なbashスクリプトを書いていますか? –

+0

あなたはこのためのbashスクリプトは必要ありません...プログラミング関連ではありません – Shree

答えて

8
find . | grep "your_pattern" | xargs mv destination_directory 

次の操作を実行します。

  • は、すべての結果のファイルへ
  • 移動をあなたのパターンに応じて
  • がそれらをフィルター現在のディレクトリ内のすべてのファイルを検索します宛先ディレクトリ
+0

grepファイル名を使わないでください。特にfind(1)ではない:-nameを持つ。また、-0を指定しないでxargsを使用しないでください。特にfind(1)ではありません:それは-execです。 – lhunath

+0

findが名前を検索できる点を除いて、ファイル名をgreppingすると何が問題になるのでしょうか? –

1

nzで始まるディレクトリがあれば、それも移動します。

for files in nz* 
do 
mv $files foobar 
done 

編集:これは完全に上に示されているとおりです。それを行う必要があります

for files in `ls | grep [regexp]` 
do 
mv $files foobar 
done 
7

mv nz* foobar:しかし、より複雑なパターンが一致したために、あなたのような何かを行う可能性があります。

1

ほとんどのLinuxディストリビューションにインストールされている「mmv」を使用してください。

6

のMV NZ * foobarに/

0

mv nz* foobar/

  • MV - ファイルを移動したり名前を変更します
  • NZは - どこのすべてのディレクトリです -
  • foobarに/は "NZ" で始まるすべての項目を取得します項目は
  • に入っています
関連する問題