ファイルまたはディレクトリのコピーは、すべてのオペレーティングシステムの基本的なアクティビティの1つです。バックアップアクティビティは、基本的にファイルとディレクトリのコピーを作成することです。 Linuxシステムでは、cpコマンドを使用して実行できます。
前述のように、cpコマンドはファイルとディレクトリのコピーを作成するコマンドです。日常の操作に役立つ可能性のあるcpコマンドのサンプルを次に示します
1)cpコマンド
これは非常に基本的なcpの使用法です。ファイル名myfile.txtをある場所から別の場所にコピーするには、次のように入力します:
$ cp myfile.txt /home/pungki/office

絶対パスを入力しない場合は、現在のディレクトリにファイルをコピーしていることを意味します。上記の例から、 myfile.txt / home / pungki / Documentsにあります 。 /home/pungki/Documents/myfile.txtと入力する必要はありません myfile.txtをコピーするには その/home / pungki / Documentsにいる場合 ディレクトリ。 / home / pungki / office ファイルがコピーされるフォルダです。
2)複数のファイルを同時にコピーする
複数のファイルを同時にコピーするには、スペースで区切ったcopyコマンドの後ろにファイルを置くだけです。次に例を示します:
$ cp file_1.txt file_2.txt file_3.txt /home/pungki/office

3)ディレクトリをコピーします
ディレクトリのコピーは少し注意が必要です。 -rを追加する必要があります または-R それを行うためのオプション。 -rまたは-Rオプションは、再帰を意味します。 このオプションは必須です ディレクトリが空かどうか。次に例を示します:
$ cp -r directory_1 /home/pungki/office

もう1つ注意すべき点は、末尾のスラッシュを削除する必要があるということです。 ディレクトリ名の後ろ。そうしないと、 cp:ディレクトリ「directory_1/」を省略のようなエラーメッセージが表示されます。

そのエラーが発生した場合、ディレクトリは宛先フォルダにコピーされません。
4)ファイルをコピーする代わりにファイルへのハードリンクを作成します
ファイルをコピーするということは、コピーしたファイルを保存するためにストレージにある程度のスペースが必要であることを意味します。何らかの理由で、ファイルをコピーする代わりに、ファイルへの「ショートカット」またはリンクを作成したい場合があります。これを行うには、 -lを使用できます オプション。
$ cp -l file_4.txt /home/pungki/office

上のスクリーンショットから、 file_4.txtのハードリンクがわかります。 /home/pungki/office/file_4.txtにコピーされました 。同じiノード835386でマークされています 。ただし、ハードリンクをディレクトリに作成できないことに注意してください。以下の例を見てみましょう。

元のdirectory_1のiノード番号は278230です

元のfile_5.txtのiノード番号は279231です

directory_1でcpコマンドを実行します

コピーされたdirectory_1のiノード番号は274800です

コピーされたfile_5.txtのiノード番号は279231でした。元のファイルと同じです
5)ファイルへのシンボリックリンクを作成する
ソフトリンクと呼ばれる別の種類のリンクがあります またはシンボリックリンク 。 -sを使用します これを行うためのオプション。これがサンプルコマンドです。
$ cp -s /home/pungki/Documents/file_6.txt file_6.txt
シンボリックリンクの作成は、現在のディレクトリでのみ実行できます。上のスクリーンショットでは、ソースディレクトリからシンボリックリンクを作成します-/home/pungki/Documents/file_6.txtから/home / pungki / office 。ただし、シンボリックリンクを作成するには、内部に配置する必要があります 宛先フォルダーとしての/home/ pungki/office。そこにたどり着いたら、cp -sを実行できます。 上記のコマンド。
次に、ファイルを詳細に一覧表示すると、/home/pungki/office/file_6.txtが表示されます。 元のファイルを指しています。ファイル名の後に矢印記号が付いています。

6)ソース内のシンボリックリンクをたどらずにコピーする
これを行うには、 -Pを使用できます オプション。 cpコマンドがシンボリックリンクのあるファイルを見つけると、そのままコピーします。以下のサンプルをご覧ください。
$ cp -P file_6.txt ./movie

ご覧のとおり、cpコマンドは file_6.txtをコピーします そのまま。ファイルタイプは引き続きシンボリックリンクです。
7)ソース内の次のシンボリックリンクを使用してコピーします
これで、 -Lを使用してこれを実行できます オプション。基本的に、これは反対です 上記の-Pオプションの。これがサンプルです。
$ cp -L file_6.txt ./movie

このオプションを使用すると、コピーされたファイルは、 file_6.txtのソースファイルと同じファイルになります。 。これはファイルサイズからわかります。コピーされたファイルの50バイト シンボリックリンクとしてのfile_6.txtのファイルサイズは33バイトです。 ファイルサイズ。
8)ファイルをアーカイブする
ディレクトリをコピーするときは、-rまたは-Rを使用します オプション。ただし、 -aを使用することもできます ファイルをアーカイブするオプション。これにより、正確なコピーが作成されます シンボリックリンクがある場合はそれを含むファイルとディレクトリの数。サンプルは次のとおりです:
$ cp -a directory_1/ /home/pungki/office

上記のコマンドは、directory_1という名前のディレクトリをフォルダ / home / pungki / officeにコピーします。 。ご覧のとおり、 file_6.txt まだシンボリックリンクとしてコピーされています。
9)何が行われているのか説明してください
デフォルトでは、アクティビティのコピーが成功すると、コマンドプロンプトが再度表示されます。ファイルのコピー中に何が起こるかを知りたい場合は、 -vを使用できます。 オプション。
$ cp -v *.txt /home/pungki/office

現在のディレクトリ内のすべてのtxtファイルを/home / pungki / office /にコピーする場合 ディレクトリ、 -v オプションは、何が行われているのかを示します。この追加情報により、コピーアクティビティについてより確実になります。
10)ソースファイルが新しい場合にのみコピーします
これを行うには、 -uを使用できます オプション。以下のこの例を見てください。
$ cp -vu *.txt /home/pungki/office

最初に、file_1.txtのバイト数が0バイトであることがわかります。 ファイルサイズ。次に、viを使用して編集し、コンテンツを追加して保存します。次に、ファイルサイズが36バイトに変更されたことがわかります。
一方、 / home / pungki / office ディレクトリ、すでにすべて *.txtファイル。 -uを使用する場合 オプション、 -vと組み合わせる 何が行われているかを確認するオプションの場合、cpコマンドは宛先ディレクトリから新しいファイルのみをコピーします。その結果、file_1.txtのみが/home / pungki/officeディレクトリにコピーされていることがわかります 。
11)インタラクティブモードを使用する
インタラクティブモードでは、宛先フォルダにすでにファイルがあるかどうかを尋ねられます。インタラクティブモードを有効にするには、 -iを使用します オプション。
$ cp -ir directory_1/ /home/pungki/office/

12)コピーした各ファイルのバックアップ日を作成します
宛先フォルダにすでにファイルがある場合、デフォルトでは、cpコマンドは宛先ディレクトリ内の同じファイルを上書きします。 -バックアップの使用 オプションの場合、cpコマンドは既存の各宛先ファイルのバックアップを作成します。 ../officeは/home/ pungki/officeを参照します 。サンプルは次のとおりです:
$ cp --backup=simple -v *.txt ../office

ご覧のとおり、-backup =simple オプションは、チルダ記号(〜)でマークされたバックアップファイルを作成します ファイルの最後に。 -バックアップ オプションにはいくつかのコントロールがあります:
- なし、オフ: バックアップしない(--backupが指定されている場合でも)
- 番号付き、t: 番号付きのバックアップを作成する
- 既存、なし: 番号付きバックアップが存在する場合は番号付き、それ以外の場合は単純
- シンプル、決して: 常に簡単なバックアップを作成してください
13)ファイル属性のみをコピーする
Cpコマンドは、-属性のみも提供します オプション。その名前から推測できるように、このオプションはデータをコピーせずにファイル名とその属性のみをコピーします。これがサンプルです。
$ cp --attributes-only file_6.txt -v ../office

上のスクリーンショットから、元のfile_6.txtファイルは50バイトです ファイルサイズ。 -属性のみを使用する オプション、コピーされたファイルは0バイトになります ファイルサイズ。これは、ファイルの内容がコピーされていないためです。
14)強制コピー
-fを使用する オプションは、コピーアクティビティを強制します。宛先ファイルを開くことができない場合は、 -f 再試行します。
$ cp -f *.txt -v ../office

15)コピーする前に宛先を削除する
これを行うには、-remove-destinationを使用できます オプション。このオプションは、-fオプションと対比です。 その上。 cpコマンドが宛先フォルダーで同じファイル名を見つけた場合、cpコマンドは最初に宛先ファイルを削除し、新しいファイルをコピーします。これが例です。
$ cp --remove-destination *.txt -v ../office

Cpコマンドは、基本的なLinuxコマンドの1つです。 Linuxを学びたい人は、このコマンドを知っている必要があります。もちろん、 man cpと入力することもできます またはcp--help コンソールからマニュアルページを表示して、詳細を確認します。
関連項目:
- 例を含む106個のLinuxコマンドの概要