Ubuntuコマンドラインを介して1つのファイルを複数の場所に同時にコピーする

コマンドラインの初心者として、グラフィカルインターフェイスを介してすばやく実行したのと同じタスクで、コマンドラインに多くのコマンドが要求される場合があると感じるかもしれません。 ただし、学習、練習、および経験を通じてコマンドラインパワーユーザーになると、非常にシンプルでありながら便利なショートカットを使用して、同じタスクを非常に迅速に実行できることに気付くでしょう。 この記事では、実行するために多くのコマンドが必要になる可能性がある1つのケースについて説明しますが、実際には、1つの単純なコマンドでタスクを実行できます。

場合によっては、1つのファイルをシステム上の複数の場所にコピーする必要があります。 つまり、cpコマンドを複数回使用する必要があるということですか? 答えはいいえだ! 解決策を見つけるためにさらに読んでみましょう。

この記事で説明されているコマンドは、Ubuntu 18.04LTSシステムで実行されています。

1つのファイルを複数の場所に同時にコピーする方法

cpコマンドを使用すると、次の構文を使用してファイルを新しい場所にコピーする方法を知っています。

$ cp ~[/location/sourcefile] ~[/destinationfolder]

ここでは、サンプルテキストファイルをDownloadsフォルダーからDocumentsフォルダーにコピーしています。

同じファイルを1つではなく2つの異なる場所にコピーしたい場合、考えられる解決策はcpコマンドを2回使用しているようです。

ここでは、cpコマンドを2回使用して、サンプルテキストファイルをダウンロードフォルダーからパブリックフォルダーとデスクトップフォルダーにコピーしています。

cpコマンドを2回使用して同じファイルを2つの場所にコピーすることは論理的ですが、ファイルを3つ、5つ、またはそれ以上の場所にコピーする必要があると仮定します。 これが、1つのコマンドでこの目的を達成する方法です。

構文:

$ echo [destination1] [desctination2] [destiantion3]..... | xargs -n 1 cp [/location/sourcefile]

以下では example、このコマンドを使用して、サンプルテキストファイルをダウンロードフォルダーから3つの異なるフォルダーに同時にコピーします。

目的を達成するために、echoコマンドとxargsコマンドを1行で使用しました。

コマンドはどのように機能しますか?

echoコマンドは、出力を画面に出力しますが、 example、|を介して出力をxargsコマンドにフィードするために使用しています。 シンボル。 xargsコマンドはechoコマンドから3回入力を受け取り、cp操作を3回実行して、サンプルテキストを3つの異なる場所にコピーします。 n countは、cpコマンドに一度に1つの引数を取るように指示します。

このコマンドは、宛先フォルダーにある同じ名前の既存のファイルを上書きすることに注意してください。 したがって、重要なファイルのバックアップを常に取っておくことをお勧めします。 上書き操作の前に確認するために使用したiオプションは、xargsコマンドでは機能しません。

ただし、ファイルが宛先フォルダーに既に存在する場合にファイルを上書きしないようにするのに役立つコマンドの使用法が1つあります。 ソースファイルの前のnオプション。

構文:

$ echo [destination1] [desctination2] [destiantion3]..... | xargs -n 1 cp n [/lcoation/sourcefile]

例:

nオプションは、特にネットワークを介して、ある場所から別の場所に非常に大きなファイルをコピーする場合に非常に便利です。 このようにして、既存のファイルをコピーして置き換えるためにリソースが無駄になるのを防ぐことができます。

このチュートリアルを実行すると、コマンドラインの第一人者になることに一歩近づきました。 これで、1つのファイルを別の場所にコピーするという単純なタスクを実行するために複数のコマンドを作成する必要がなくなりました。 説明したように、echoコマンドとxargsコマンドをマージして、問題を1つのコマンドで解決することができます。