GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでファイルとディレクトリをコピーする

Linuxでは、現在利用可能な他のオペレーティングシステムと同じようにファイルをコピーします。ファイルマネージャーを開き、コピーするファイルを選択して、好きな場所に貼り付けます。しかし、コマンドラインからLinuxのファイルやディレクトリをコピーしたり、コピーする前に追加のフィルターを適用したりする必要がある場合はどうでしょうか。ええ、それは簡単です。

ファイルまたはディレクトリをローカルにコピーする

ファイルまたはディレクトリをあるディレクトリから別のディレクトリにローカルにコピーする必要がある場合は、そのための簡単なコマンド–cpがあります。

cp –ファイルとディレクトリをコピーします

基本構文

cp source destination_path

コマンドの基本的な構文は2つの引数を受け入れます。最初の引数はファイルのパスまたはディレクトリであり、2番目の引数はファイルまたはディレクトリのコピー先の宛先パスです。どのLinuxシステムでも、このコマンドは問題なく機能しますが、cpコマンドが提供するいくつかの重要なオプションに注意する必要がある場合があります。

–backup [option]

多くの場合、これらのファイルの一部がすでに存在する可能性のある場所に、一度に非常に多くのファイルをコピーする必要があります。そのシナリオでは、cpコマンドのデフォルトの動作により、既存のすべてのファイルが上書きされます。ファイル内に異なるデータが含まれている場合、これは問題になる可能性があります。

その場合、–backupオプションを使用して、宛先ディレクトリにある既存の各ファイルのバックアップを作成する方法をコマンドに指示できます。

cp -v --backup myphotos Downloads/allphotos

上記のコマンドは、すべてのファイルをmyphotosからDownloadsディレクトリ内のallphotosディレクトリにコピーします。 allphotosディレクトリにmyphotosから転送するファイルがすでに含まれている場合は、そのファイルのバックアップが作成されます。 cpコマンドのもう1つの重要な機能は、バックアップバージョンを追跡できることです。

上記のコマンドは、バックアップファイルの名前を元のファイル名+最後に「`」に変更します。

バックアップバージョンを追跡する

空の–backupオプションは、宛先ディレクトリに各ファイルのバックアップを作成します。ファイルを再度コピーしようとすると、コマンドは既存のバックアップファイルを新しいバックアップファイルに置き換えます。既存のバックアップファイルを保持し、ファイルを同じディレクトリにコピーしようとするたびに新しいファイルを作成する場合は、「番号付き」または「t」オプションを–backupに渡すことができます。

番号付きオプションは、バックアップファイルを作成し、各バックアップファイルの最後にバックアップ番号を追加します。コマンドの例を次に示します–

cp -rv --backup=numbered myphotos Downloads/allphotos

上記のコマンドは、すべての新しいファイルを宛先ディレクトリにコピーし、複製されたファイルはバックアップされ、新しいファイルに置き換えられます。各バックアップファイルには、ファイル名にバージョン番号が追加されます。

>

ファイルの更新

cpコマンドの最も便利なオプションの1つは、「-u」です。これは、新しいファイルのみを宛先にコピーし、残りを残します。たとえば、ファイルが宛先ディレクトリにすでに存在する場合、「-u」オプションは両方のファイルを比較し、コピーするファイルが既存のファイルよりも新しい場合にのみコピーします。

cp -rv -u myphotos Downloads/allphotos

ファイル属性のみをコピーする(–attributes-only)

既存のファイルの属性の一部を使用してファイルを作成する場合は、引数–attributes-onlyを渡すことができます。データではなく、同じ属性を持つ指定された宛先にファイルを作成します。ここに例があります–

cp -rv --attributes-only myphotos Downloads/allphotos
> >

「-i」と「-n」でファイルを上書きする前に確認してください

ファイルのバックアップを作成すると、既存のファイルがバックアップされてから、ファイルが新しいファイルに置き換えられます。ファイルを上書きする前にコマンドで確認したい場合はどうすればよいですか? 「-i」および「-n」オプションで可能です。

cp -rv -i myphotos Downloads/allphotos
Ask before overwriting any file
cp -rv -n myphotos Downloads/allphotos
Do not overwrite any file at all

これで、コマンドで要求されたときに「y」と入力した場合にのみ、コマンドは重複ファイルを上書きします。また、「-n」オプションはファイルをまったく上書きしません。

コピー時にファイル属性を保持する

上記のすべてのcpコマンドは、ファイルとそのデータを宛先にコピーしますが、権限、所有権、タイムスタンプなどのファイルの属性は保持しません。ファイル属性もコピーまたは保持するには、cpコマンドで「-p」オプションを使用します。

cp -rf -p myphotos Downloads/allphotos
The above command will not only copy files data but also preserve all the attributes.

-p引数の反対は、「–no-preserve」です。

したがって、これらはcpコマンドで使用できるいくつかの重要なオプションでした。オプションの完全なリストについては、cpコマンドのマニュアルページを参照してください。

man cp

FreeFileSync –ファイルの比較と同期

FreeFileSyncは、2つのディレクトリ間でファイルを同期するための使いやすいツールです。上記のすべての機能に加えて、多数のファイルをコピーするのに役立つ多くの高度なオプションがあります。

2つのディレクトリを選択してファイルを同期し、フィルタを適用して、[比較]をクリックします。適用するフィルターに基づいて、両方のディレクトリをスキャンし、結果を提供します。結果に満足したら、[同期]ボタンをクリックしてコピープロセスを開始できます。

時間、サイズ、コンテンツに基づいてファイルを比較する

[比較]ボタンの横にある[歯車]アイコンをクリックすると、2つのディレクトリを比較するときに比較するプロパティを選択できます。デフォルトでは、ツールはファイルの時間とサイズを比較しますが、ファイルまたはコンテンツのサイズを比較するように選択することもできます。

フィルターを適用する

FreeFileSyncは、ソースディレクトリをスキャンするときにフィルタを適用することもでき、包含フィールドの条件の少なくとも1つが満たされるか、除外フィールドの条件のいずれも満たされない場合にのみ、ファイルまたはディレクトリを考慮します。

たとえば、ソースディレクトリの特定のディレクトリからすべてのファイルをエスケープするには、除外フィールドにディレクトリ名を追加するか、最小または最大のファイルサイズを設定するか、特定の時間に作成または変更されたファイルのみを選択するように期間を設定します。

パスのどこかに特定の拡張子、名前、または単語が含まれるファイルを除外することもできます。

\*.gif
This will exclude all the files in the base directory with '.gif' extension.
\tower.png
This will exclude the file in the base directory with the name tower.png.
*mountains*
This will exclude all the files in the base directory with the word 'mountains' anywhere in the path.

その他のフィルターの例については、FreeFileSyncの公式ページにアクセスしてください。

FreeFileSyncをダウンロード

ダウンロード

結論

これは、Linuxでファイルまたはディレクトリをコピーすることについてです。 Linuxでディレクトリをコピーするには、上記のいずれかの方法を使用できます。次の記事では、同じネットワーク上または異なるネットワーク上のLinuxコンピューター間でファイルを便利にコピーまたは同期する方法を説明します。


Linux
  1. Linuxcpコマンド

  2. Linux ls コマンド - ファイルの一覧表示

  3. Linux の mcopy コマンド

  1. Linuxでファイルとディレクトリをコピーする方法

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

  3. LinuxでRsyncコマンドを使用するにはどうすればよいですか?

  1. Linuxでのコマンドの検索(ファイルとディレクトリの検索)

  2. LinuxでのLsコマンド(ファイルとディレクトリのリスト)

  3. Linuxでファイルとディレクトリをコピーする方法