mv folder2/*.* folder
コマンドを実行すると、「引数リストが長すぎます」というエラーが表示されます。多数のファイルを移動する
このエラーを処理するls
とrm
の例は、find folder2 -name "*.*"
です。しかし、私はmv
にそれらを適用することができません。
mv folder2/*.* folder
コマンドを実行すると、「引数リストが長すぎます」というエラーが表示されます。多数のファイルを移動する
このエラーを処理するls
とrm
の例は、find folder2 -name "*.*"
です。しかし、私はmv
にそれらを適用することができません。
find folder2 -name '*.*' -exec mv {} folder \;
-exec
\;
は、EXECコマンドの終わりをマークし、見つかったファイル名を挿入し{}
、任意のコマンドを実行します。
答えをありがとう、私はいくつのファイルがmvを動かすことができるのだろうかと思っています。mvのファイル数の限界は何ですか? – Thunder
find folder2 -name '*.*' -exec mv \{\} /dest/directory/ \;
もう1つはfind
ですが、ファイルごとに1つのコマンドが実行されるため、多数のファイルに対して非常に遅いです。はるかに効率的なアプローチはfind
の終わりに+
を使用するか、またはxargs
を使用するようにされて、次のいずれか
# Using find ... -exec +
find folder2 -name '*.*' -exec mv --target-directory=folder '{}' +
# Using xargs
find folder2 -name '*.*' | xargs mv --target-directory=folder
通常は合意していますが、まっすぐな 'mv'が"引数リストが長すぎます "というエラーを生成すると、' find'を使ってビルドしたものがうまく動作するかどうか疑いがあります。 –
私は私がフォローしているか分からない。これは 'find'の最後にある' + 'の全体のポイントです。それを使うと、 'find'は' find | xargsの組み合わせ。 – Idelic
OPがすべてのファイルを一度に移動しようとしたときにシェルがエラーを起こしました。 'find'と' xargs'の両方が実際に同じシェルコマンドを実行して実際に移動するため、エラーも出る可能性があります。だからこそ、私は一度に1つの方法を提案していますが、それは遅いです。 –
この質問は尋ねたS.O.にここで答えています週単位で尋ねる前に検索する方法を学んでください。がんばろう。 – shellter
@shellter私はいくつかの同様の例を見つけますが、私が言ったように、それらのすべては 'ls'と' rm'の例です。 – DrXCheng
@ shellter、たくさんのdupsがある場合、1つを見つけて閉じるように投票してください。 –