Linux 中的 cp
命令代表 “复制”。它是一种命令行工具,用于将文件和目录从文件系统中的一个位置复制到另一个位置。通过使用 cp 命令,用户可以创建文件或目录的副本,同时保留原始内容。
cp 命令中的 “source
“是指要复制的文件或目录,”destination
“是指要放置副本的位置。可以添加各种选项来修改复制行为,如保留文件属性或提供详细输出。在 Linux 中,它是管理文件和目录的基本命令,使用广泛。
在本篇文章中,我们将介绍在 Linux 中使用 cp
命令复制文件和文件夹的一些常用方法。
语法:
cp [options] source destination
1. 复制文件
cp foo.txt bar.txt
该命令将把 foo.txt
文件的内容复制到名为 bar.txt
的文件中。
示例:
假设您有一个名为 foo.txt
的文件,内容如下:
Hello, World!
如果运行 cp foo.txt bar.txt
命令,就会创建一个名为 bar.txt
的新文件,其内容与 foo.txt
完全相同:
Hello, World!
如果 bar.txt
已经存在,其内容将被 foo.txt
的内容覆盖。如果 bar.txt 不存在,则会被创建。
2. 复制目录(及其内容)
cp -R foo-folder bar-folder
-R
选项代表 “递归”,用于复制目录及其内容,包括子目录。
下面是 cp -R foo-folder bar-folder
命令的作用:
cp
: 调用复制命令。-R
: 告诉命令进行递归操作,复制所有目录和子目录。foo-folder
: 要复制的源目录。bar-folder
: 要复制源目录的目标目录。
示例
假设有一个名为 foo-folder
的目录,其结构如下:
foo-folder/ ├── file1.txt └── subfolder └── file2.txt
然后,你要将整个目录复制到另一个名为 bar-folder
的目录中。
你可以运行命令:
cp -R foo-folder bar-folder
运行此命令后, bar-folder
目录的结构将与 foo-folder
相同:
bar-folder/ └── foo-folder ├── file1.txt └── subfolder └── file2.txt
如果 bar-folder
不存在,则将创建它。如果存在,foo-folder 将被复制到其中,并保留 foo-folder
的结构。
注:如果要将 foo-folder
的内容直接复制到 bar-folder
中,而不在 bar-folder
中创建 foo-folder
,则需要确保 bar-folder
存在,然后运行:
1 | cp -R foo-folder/* bar-folder/ |
3. 显示复制进度
cp -v foo.txt bar.txt
-v
选项代表 “verbose”(详细说明),与 cp
命令一起使用时,可提供有关正在执行的操作的详细信息。
示例:
假设当前目录下有一个名为 foo.txt
的文件,你想在同一目录下创建一个名为 bar.txt 的文件副本。您可以使用以下命令:
cp -v foo.txt bar.txt
如果操作成功,命令将输出如下信息:
'foo.txt' -> 'bar.txt'
该信息确认文件 foo.txt
已复制到 bar.txt。
4. 确认覆盖文件
cp -i foo.txt bar.txt
-i
代表 “interactive(交互式)”。使用该选项时,系统会在覆盖任何文件前提示你。如果你想避免意外覆盖现有文件,这个选项非常有用。
示例:
假设当前目录下有一个名为 foo.txt
的文件,你想在同一目录下创建一个名为 bar.txt
的副本。但是你不确定名为 bar.txt 的文件是否已经存在,而且你不想在没有警告的情况下覆盖它。
您可以使用命令:
cp -i foo.txt bar.txt
如果已存在 bar.txt
,系统将提示您类似的信息:
cp: overwrite 'bar.txt'?
然后,你可以输入 y
(是)选择覆盖,或输入 n
(否)避免覆盖。
如果 bar.txt
不存在,命令将直接创建一个名为 bar.txt
的 foo.txt
副本,而不会有任何提示。
5. 将多个文件复制到一个目录
cp foo.txt bar.txt baz
该命令将在 baz
目录中复制 foo.txt
和 bar.txt
。baz
目录必须存在,命令才会生效。
更多 Linux 命令
下面罗列了最常见的一些 Linux 命令,您可以根据自己的需要查阅对应命令的详细解析:
目录操作 | rmdir · cd · pwd · exa · ls |
文件操作 | cat · cp · dd · less · touch · ln · rename · more · head |
文件系统操作 | chown · mkfs · locate |
网络 | ping · curl · wget · iptables · mtr |
搜索和文本处理 | find · grep · sed · whatis · ripgrep · fd · tldr |
系统信息和管理 | env · history · top · who · htop · glances · lsof |
用户和会话管理 | screen · su · sudo · open |
此外,我们还整理 Linux 命令行大全,以帮助大家全面深入地学习 Linux。
评论留言