ホームページ  >  記事  >  運用・保守  >  Linuxのコピーコマンドとは何ですか

Linuxのコピーコマンドとは何ですか

青灯夜游
青灯夜游オリジナル
2022-05-09 16:50:0553160ブラウズ

Linux でのコピー コマンドは「cp」です。 cp コマンドは主にファイルとディレクトリをコピーするために使用されます。構文「cp [オプション] ソース ファイル ターゲット ファイル」は、1 つ以上のソース ファイルまたはディレクトリを指定されたファイルまたはディレクトリにコピーできます。同時に、特定のコマンドを使用して、オプションでディレクトリ全体のコピーや、新旧ファイルの比較やアップグレードなどの機能も実現します。

Linuxのコピーコマンドとは何ですか

#このチュートリアルの動作環境: CentOS 6 システム、Dell G3 コンピューター。

Linux でのコピー コマンドは「cp」です。

cp の正式な英語名は「copy file」で、中国語でファイルのコピーを意味します。

cp コマンドは主にファイルとディレクトリをコピーするために使用されます。1 つ以上のソース ファイルまたはディレクトリを指定された宛先ファイルまたはディレクトリにコピーできます。

cp コマンドの基本的な形式は次のとおりです。以下に続きます:

cp [选项] 源文件 目标文件

オプション:

  • -a: -d、-p、および -r オプションのセットに相当します。これらのオプションを 1 つずつ紹介します。 ;

  • -d: ソース ファイルがソフト リンクの場合 (ハード リンクには無効)、コピーされたターゲット ファイルもソフト リンクになります。

    -i: ターゲット ファイルが既に存在する場合、上書きするかどうかを尋ねられます;
  • -l: ターゲット ファイルをソースのハード リンク ファイルとして作成しますソース ファイルをコピーする代わりに、ファイルを作成します;
  • -s: ソース ファイルをコピーする代わりに、ソース ファイルのソフト リンク ファイルとしてターゲット ファイルを作成します;
  • -p: ターゲット ファイルは、ソース ファイルの属性 (所有者、グループ、権限、時刻を含む) をコピーした後も保持されます;
  • -r: 再帰的コピー、次の目的で使用されます。 copy directory;
  • -u: ターゲット ファイルがソース ファイルと異なる場合、このオプションを使用してターゲット ファイルを更新します。このオプションは、ファイルのアップグレードとバックアップに使用できます。
  • ソース ファイルは複数存在する可能性がありますが、この場合、ターゲット ファイルはディレクトリである必要があることに注意してください。

注: 特定のオプションを使用すると、cp コマンドでディレクトリ全体をコピーし、古いファイルと新しいファイルを比較してアップグレードすることもできます。

cp コマンドの使用例

【例 1】cp コマンドの基本的な使い方
  • cp コマンドは、ファイルとディレクトリの両方をコピーできます。まず、例としてファイルをコピーする方法を見てみましょう。
  • [root@localhost ~]# touch cangls
    #建立源文件
    [root@localhost ~]# cp cangls /tmp/
    #把源文件不改名复制到 /tmp/ 目录下
ファイルの名前を変更する必要がある場合、コマンドは次のとおりです。

[root@localhost ~]# cp cangls /tmp/bols
#改名复制

同じ名前のファイルがある場合コピー ターゲットの場所にすでに存在する場合は、それを上書きするかどうかを尋ねるメッセージが表示されます。これは、cp コマンドがデフォルトで「cp -i」のエイリアスを実行するためです。例:

[root@localhost ~]# cp cangls /tmp/
cp:是否覆盖"/tmp/cangls"?y
#目标位置有同名文件,所以会提示是否覆盖

次に、次の方法を見ていきます。ディレクトリをコピーします。実際、ディレクトリをコピーするには、「-r」オプションを使用するだけです (例:

[root@localhost ~]# mkdir movie
#建立测试目录
[root@localhost ~]# cp -r /root/movie/ /tmp/
#目录原名复制

[例 2] ソフト リンク ファイルのコピー
    )
  • ソース ファイルが通常のファイルではなく、ソフト リンク ファイルの場合、ソフト リンクのプロパティをコピーできますか?試してみましょう:
  • [root@localhost ~]# ln -s /root/cangls /tmp/cangls_slink
    #建立一个测试软链接文件/tmp/cangls_slink
    [root@localhost ~]# ll /tmp/cangls_slink
    lrwxrwxrwx 1 root root 12 6 月 14 05:53 /tmp/cangls_slink -> /root/cangls
    #源文件本身就是一个软链接文件
    [root@localhost ~]# cp /tmp/cangls_slink /tmp/cangls_t1
    #复制软链接文件,但是不加"-d"选项
    [root@localhost ~]# cp -d /tmp/cangls_slink /tmp/cangls_t2
    #复制软链接文件,加入"-d"选项
    [root@localhost ~]# ll /tmp/cangls_t1 /tmp/cangls_t2
    -rw-r--r-- 1 root root 0 6月 14 05:56 /tmp/cangls_t1
    #会发现不加"-d"选项,实际复制的是软链接的源文件,而不是软链接文件
    lrwxrwxrwx 1 root root 12 6 月 14 05:56/tmp/ cangls_t2-> /root/cangls
    #而如果加入了"-d"选项,则会复制软链接文件
この例は、ソフト リンク ファイルをコピーするときに "-d" オプションが使用されていない場合、cp コマンドは、"-" の場合にのみ、ソフト リンク ファイルではなくソース ファイルをコピーすることを示しています。 「d」オプションを追加すると、ソフトリンクファイルがコピーされます。 「-d」オプションはハードリンクには無効であることに注意してください。

[例 3] ソース ファイルの属性を保持してコピーします。
  • コピー コマンドを実行すると、ターゲット ファイルの時刻が変更されることがわかりました。ソースファイルの時間ではなく、コマンドの実行時間をコピーするように変更されます。例:
  • [root@localhost ~]# cp /var/lib/mlocate/mlocate.db /tmp/
    [root@localhost ~]# ll /var/lib/mlocate/mlocate.db
    -rw-r-----1 root slocate2328027 6月 14 02:08/var/lib/mlocate/mlocate.db
    #注意源文件的时间和所属组
    [root@localhost ~]#ll /tmp/mlocate.db
    -rw-r----- 1 root root2328027 6 月 14 06:05/tmp/mlocate.db
    #由于复制命令由root用户执行,所以目标文件的所属组为了root,而且时间也变成了复制命令的执行时间
バックアップとログ バックアップを実行する場合、これらのファイルの時刻が重要なパラメータになる可能性があるため、「-p」オプションを実行する必要があります。このオプションでは、所有者、グループ、時刻などのソース ファイルの属性が保存されます。例:

[root@localhost ~]# cp -p /var/lib/mlocate/mlocate.db /tmp/mlocate.db_2
#使用"-p"选项
[root@localhost ~]# ll /var/lib/mlocate/mlocate.db /tmp/mlocate.db_2
-rw-r----- root slocate 2328027 6月 14 02:08 /tmp/mlocate.db_2
-rw-r----- root slocate 2328027 6月 14 02:08 /var/lib/mlocate/mlocate.db
#源文件和目标文件的所有属性都一致,包括时间

「-a」オプションは「-d、-p、-r」オプションと同等であると前に述べましたが、これらのオプションについてはすでに個別に説明しました。したがって、「-a」オプションを使用すると、ソース ファイルの所有者、グループ、時刻、ソフト リンクを含む、ターゲット ファイルとソース ファイルのすべての属性が一貫します。 「-d、-p、-r」オプションの代わりに「-a」オプションを使用すると便利です。

[例 4] 「-l」および「-s」オプション
  • 「-l」オプションを使用すると、ターゲットファイルはソース ファイルへのハード リンクとして作成されます。「-s」オプションを使用すると、ターゲット ファイルはソース ファイルへのソフト リンクとして作成されます。
これら 2 つのオプションは、「-d」オプションとは異なります。「d」オプションでは、ターゲット ファイルがソフト リンクとしてコピーされる前に、ソース ファイルがソフト リンクである必要があります。一方、「-l」 " および "-s" オプションのソース ファイルは通常のファイルであればよく、ターゲット ファイルはハード リンクまたはソフト リンクとして直接コピーできます。例:

[root@localhost ~]# touch bols
#建立测试文件
[root@localhost ~]# ll -i bols
262154-rw-r--r-- 1 root root 0 6月 14 06:26 bols
#源文件只是一个普通文件,而不是软链接文件
[root@localhost ~]# cp -l /root/bols /tmp/bols_h
[root@localhost ~]# cp -s /root/bols /tmp/bols_s
#使用"-l" 和"-s"选项复制
[root@localhost ~]# ll -i /tmp/bols_h /tmp/bols_s
262154-rw-r--r-- 2root root 0 6 月 14 06:26/tmp/bols_h
#目标文件 /tmp/bols_h 为源文件的硬链接文件
932113 lrwxrwxrwx 1 root root 10 6 月 14 06:27/tmp/bols_s -> /root/bols
#目标文件 /tmp/bols_s 为源文件的软链接文件

関連する推奨事項: 「

Linux ビデオ チュートリアル

以上がLinuxのコピーコマンドとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。