Unixでファイルを一括コピー/移動しますか?

Unixでファイルを一括コピー/移動しますか?

Unixでファイルを一括コピー/移動する方法はありますか?これはオプションかもしれないと思いますcp/mvが、そうする方法を見つけることができません。

答え1

cpmvファイルをコピーしてファイルを移動するのに最適なツールです。 )またはなどのシェル構造とfor file in *; do ...; done組み合わせると、findはるかに強力になります。

あなたの目的を正しく理解したら、次のファイルを抽出しました。

somedir/file.png
somedir/file.txt

次のように、すべてのファイルを親ディレクトリに移動しようとします。

file.png
file.txt

ディレクトリにあると仮定してシェルワイルドカードを使用すると、次のことがsomedirできます。

mv * ../

*現在のディレクトリ内のすべてのファイルに展開されるグローバルパターン。隠しファイル(.ファイル名の前に名前が付いたファイルとディレクトリ)がある場合は、shopt -s dotglobin bash)を使用してください。

私はfindこれを前に述べたことがある。次のファイルツリーがある場合:

somedir/000.txt
somedir/a/001.txt
somedir/a/004.txt
somedir/b/003.txt
somedir/b/002.txt
somedir/whatever/somethingunique.txt

ディレクトリ内のすべてのファイルを移動するには、次のようにseconddirします。

find -exec mv {} seconddir/ \;

これは、すべてのファイル名が一意であると仮定します。それ以外の場合はファイルが上書きされます。

答え2

君は大丈夫に抜け出すこともできる名前を変更するバッチ処理に適しているからです。

関連情報