
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。
















暂无评论内容