ウェブサイト検索

Linux でファイルを複数のディレクトリにコピーする方法


Linux を学習しているとき、初心者にとっては、単純なタスクを実行するためにいくつかのコマンドを入力し続けるのが常です。これは、特に端末の使用に慣れてきたばかりの場合には理解できます。

ただし、Linux のパワー ユーザーになることを楽しみにしている場合、私が「ショートカット コマンド」と呼ぶものを学習すると、時間を浪費する傾向を大幅に減らすことができます。

この記事では、Linux でコマンド 1 つでファイルを複数のディレクトリにコピーする簡単な方法を説明します。

Linux では、cp コマンドを使用してファイルをあるディレクトリから別のディレクトリにコピーします。これを使用するための最も簡単な構文は次のとおりです。

cp [options….] source(s) destination

あるいは、Linux で大きなファイル/フォルダーをコピーするときに進行状況バーを表示するアドバンスト コピー コマンドを使用することもできます。

以下のコマンドについて考えてみましょう。通常は、次のように 2 つの異なるコマンドを入力して、同じファイルを 2 つの別々のディレクトリにコピーします。

cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/test
cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/tmp

特定のファイルを最大 5 つ以上のディレクトリにコピーすると仮定すると、5 つ以上のcp コマンドを入力する必要があることになります。

この問題を回避するには、以下の形式で echo コマンド、pipexargs コマンドを cp コマンドと一緒に使用します。

echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh

上記の形式では、ディレクトリ (dir1、dir2、dir3…..dirN) へのパスがエコーされ、xargs コマンドへの入力としてパイプされます。

  1. -n 1 – xargs に対し、コマンド ラインごとに最大 1 つの引数を使用し、cp コマンドに送信するように指示します。
  2. cp – ファイルのコピーに使用されます。
  3. -v – 詳細モードを有効にして、コピー操作の詳細を表示します。

cpecho、および xargs コマンドのマニュアル ページを読んで、有用で高度な使用方法の情報を見つけてください。

man cp
man echo
man xargs

以上です。以下のコメント フォームを通じて、トピックに関する質問やフィードバックをお送りください。 (cpmvdd、tar など) の進行状況を監視するのに役立つ progress コマンドについてもお読みください。現在 Linux で実行されているコマンド。