Linuxチュートリアル:cpコマンドの詳細説明

CP

ソースファイルまたはディレクトリを宛先ファイルまたはディレクトリにコピーする

追加情報

cp コマンドは、 1 つ以上のソース ファイルまたはディレクトリを指定された宛先ファイルまたはディレクトリにコピーするために使用されます。単一のソース ファイルを、指定されたファイル名または既存のディレクトリを持つ特定のファイルにコピーできます。cp コマンドは、複数のファイルの同時コピーもサポートしています。複数のファイルを一度にコピーする場合、ターゲット ファイル パラメータは既存のディレクトリである必要があり、そうでない場合はエラーが発生します。

文法

cp(选项)(参数)

オプション

-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。

パラメータ

  • ソース ファイル: ソース ファイルのリストを作成します。デフォルトでは、cp コマンドはディレクトリをコピーできません。ディレクトリをコピーしたい場合は、-Rオプションを使用する必要があります。
  • 対象ファイル:対象ファイルを指定します。「ソースファイル」が複数のファイルの場合、「ターゲットファイル」は指定されたディレクトリである必要があります。

以下の最初の行は、cp コマンドと特定のパラメーター (-r は「再帰」、-u は「更新」、-v は「冗長」) です。次の 3 行にはコピーされたファイルに関する情報が表示され、最後の行にはコマンド ライン プロンプトが表示されます。このように、新しいファイルのみをストレージデバイスにコピーするには、cp の「update」オプションと「verbose」オプションを使用します。

一般に、パラメータは-rより冗長なスタイルでも使用できます--recursiveしかし、短い形式では、このように一緒に使用することもできます-ruv

cp -r -u -v /usr/men/tmp ~/men/tmp

バージョン バックアップ--backup=numberedパラメータは、「バックアップを作成したいのですが、それは番号付きの連続バックアップです」という意味です。したがって、1 つのバックアップは番号 1、2 つ目は番号 2、というようになります。

$ cp --force --backup=numbered test1.py test1.py
$ ls
test1.py test1.py.~1~ test1.py.~2~

ファイルを宛先ファイルにコピーするときに、宛先ファイルが既に存在する場合、宛先ファイルの内容は破壊されます。このコマンドのすべてのパラメーターは、絶対パス名または相対パス名のいずれかにすることができます。.通常はドットまたはドットが使用されます..たとえば、次のコマンドは、指定されたファイルを現在のディレクトリにコピーします。

cp ../mary/homework/assign .

すべてのターゲット ファイルで指定されたディレクトリはすでに存在している必要があります。cp コマンドではディレクトリを作成できません。ファイルをコピーする権限がない場合、システムはエラー メッセージを表示します。

ファイル file をディレクトリにコピーし/usr/men/tmp、名前を file1 に変更します。

cp file /usr/men/tmp/file1

ディレクトリとそのサブディレクトリ/usr/men内のすべてのファイルをディレクトリ/usr/zhにコピーします

cp -r /usr/men /usr/zh

/usr/menディレクトリ内の m で始まるすべての .c ファイルを対話的に/usr/zhディレクトリにコピーします。

cp -i /usr/men m*.c /usr/zh

Linux で cp コマンドを使用してファイルをコピーするとき、同じ名前のいくつかのファイルを上書きする必要がある場合があります。ファイルを上書きするときに、「上書きの実行を確認するには Y を繰り返し押す必要があります。」というプロンプトが表示されます。ファイルの数が少ないのは良いのですが、数百個もあった場合、Yを押したら血を吐きそうなので、時間をかけて方法をまとめました。

cp aaa/* /bbb
# 复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。

cp -r aaa/* /bbb
# 这次依然需要按Y来确认操作,但是没有忽略子目录。

cp -r -a aaa/* /bbb
# 依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。

cp -r -a aaa/* /bbb
# 成功,没有提示按Y、传递了目录属性、没有略过目录。

指定されたディレクトリへのディレクトリ コピーを再帰的に強制し、既存のファイルを上書きします。

cp -rfb ./* ../backup
# 将当前目录下所有文件,复制到当前目录的兄弟目录 backup 文件夹中

ディレクトリ内の隠しファイルをコピーします。.babelrc

cp -r aaa/.* ./bbb
# 将 aaa 目录下的,所有`.`开头的文件,复制到 bbb 目录中。

cp -a aaa ./bbb/ 
# 记住后面目录最好的'/' 带上 `-a` 参数

現在のディレクトリにコピー

cp aaa.conf ./
# 将 aaa.conf 复制到当前目录

リンク:

https://wangchujiang.com/linux-command/c/cp.html

おすすめ

転載: blog.csdn.net/a772304419/article/details/132981646