ファイルのグループを宛先フォルダーにコピーしたいと思います。ただし、cp
操作ごとに新しいインスタンスを生成する必要はありません。
の引数の形式はcp
次のようになります:
cp src_file1 src_file2 src_file3 dest_dir/
ソースファイル名が行ごとにリストされたファイルがあると仮定すると、これをどのように実行できますか?
ファイルの数が非常に多いため、以下の @Scott のアイデアはコマンド ラインの最大長に達するため機能しません。
cp
ファイル名のファイルを何らかの方法でパイプして、その処理を実行させたい と思います。xargs
また、コマンド ラインの末尾に展開を追加しようとするため、役に立たないようです。
これは可能ですか?
ありがとう
答え1
filelist
含まれる場合
apple
orange
banana
これらはディレクトリにコピーしたいファイルの名前ですfruity
。次のように入力します。
cp `cat filelist` fruity
/
最後に は必要ありません。
警告: ファイル名にスペースが含まれている場合、これは機能しませんpassion fruit
。例: 。
答え2
発見のシミュレーションprint0
:
cat filelist |perl -p -e 's/\n/\000/' |xargs -0 cp --target-directory dest_dir/
このサンプルにはxargs -0
、--target-directory