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/ \;

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

おすすめ記事