Unixでファイルを一括コピー/移動する方法はありますか?これはオプションかもしれないと思いますcp/mv
が、そうする方法を見つけることができません。
答え1
cp
mv
ファイルをコピーしてファイルを移動するのに最適なツールです。 )またはなどのシェル構造とfor file in *; do ...; done
組み合わせると、find
はるかに強力になります。
あなたの目的を正しく理解したら、次のファイルを抽出しました。
somedir/file.png
somedir/file.txt
次のように、すべてのファイルを親ディレクトリに移動しようとします。
file.png
file.txt
ディレクトリにあると仮定してシェルワイルドカードを使用すると、次のことがsomedir
できます。
mv * ../
*
現在のディレクトリ内のすべてのファイルに展開されるグローバルパターン。隠しファイル(.
ファイル名の前に名前が付いたファイルとディレクトリ)がある場合は、shopt -s dotglob
in 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
君は大丈夫に抜け出すこともできる名前を変更するバッチ処理に適しているからです。