
私はLinux初心者です。
90,000フォルダを含むディレクトリで、特定の25,000フォルダを別の場所に移動しようとしています。フォルダ名があり、次のコマンドを試しました。
cp -r /path/{folder1,folder2,...} /path
200 個のフォルダで動作しますが、大きい方の数値ではパラメータリストが長すぎて失敗します。
他のコマンドがあるか、ファイルから読み取ることがありますかtext/csv
?
答え1
存在する場合は、text/csv
ファイルのすべての行を読み取り、cp
フォルダーのコピーを実行する必要があります。
xargs
またはparallel
またはrush
(源泉)、このコマンドは各行に対して特定のアプリケーションを実行します。
たとえば、私のlistdirがLIST_DIR.txt
次のような場合:
folder1
folder2
folder3
folder4
このコマンドを使用してフォルダをコピー先にコピーする必要があります。
cat LIST_DIR.txt | rush 'cp -r /path/{} /path'
またはxargs
cat LIST_DIR.txt | xargs -I {} cp -r /path/{} /path
答え2
この種の問題に対する一般的な解決策は、以下を使用することです。xargs
Unixユーティリティ、ファイルに提供されている入力引数、および/または標準入力を介してコマンドを繰り返し実行します。
これは多くの例を含むブログ投稿使用xargs