前言:本篇是 Linux 基本操作篇章的内容!
笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。
学习集:
- C++ 入门到入土!!!学习合集
- Linux 从命令到网络再到内核!学习合集
目录索引:
1. 基本语法及功能
2. 常用可选项说明
3. 文件基本拷贝操作
- - 3.1 指定文件拷贝到当前目录
- - 3.2 拷贝指定文件到指定目录
- - 3.3 拷贝指定文件到上级目录
4. 目录拷贝基本操作
- - 4.1 测试直接拷贝目录
- - 4.2 可选项 [-r] 实现目录拷贝
- - 4.3 拷贝目录及文件
5. 相关文章或系列推荐
1. 基本语法及功能
语法:
- cp [选项] 源文件或目录 目标文件或目录(已存在!)
- 目标文件可以赋予新的名字!
功能:
- 复制文件或目录
说明:
- cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
2. 常用可选项说明
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
- -i 或 --interactive 覆盖文件之前先询问用户
- -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
- -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
3. 常用选项及测试
3.1 指定文件拷贝到当前目录
[Mortal@VM-12-16-centos ~]$ ls
StudyingOrder_Linux test1 test2 test3 test_mkdir
[Mortal@VM-12-16-centos ~]$ mkdir test_cp
[Mortal@VM-12-16-centos ~]$ ls
StudyingOrder_Linux test1 test2 test3 test_cp test_mkdir
[Mortal@VM-12-16-centos ~]$ cd test_cp
/* 同时创建两个目录一个源文件所在目录,一个拷贝目的地所在目录 */
[Mortal@VM-12-16-centos test_cp]$ mkdir origin_dir destination_dir
[Mortal@VM-12-16-centos test_cp]$ ls
destination_dir origin_dir
/* 创建源文件并用重定向方式写入信息(以后会介绍) */
/* 创建源文件 */
[Mortal@VM-12-16-centos test_cp]$ touch origin_dir/test_origin.txt
/* 用重定向方式写入信息 */
[Mortal@VM-12-16-centos test_cp]$ echo "hello" > origin_dir/test_origin.txt
/* 执行拷贝操作:不指定拷贝目录即表示拷贝到当前所在目录 */
[Mortal@VM-12-16-centos test_cp]$ cp origin_dir/test_origin.txt copy.txt
[Mortal@VM-12-16-centos test_cp]$ ls
copy.txt destination_dir origin_dir
/* 查看拷贝文件的内容! */
[Mortal@VM-12-16-centos test_cp]$ cat copy.txt
hello
3.2 拷贝指定文件到指定目录
/*
将 origin_dir 目录下的 test_origin.txt 文件
拷贝到:destination_dir 目录下!
*/
/* 操作指令: */
[Mortal@VM-12-16-centos test_cp]$ cp origin_dir/test_origin.txt destination_dir/copy.txt
/* 查看拷贝文件内容 */
[Mortal@VM-12-16-centos test_cp]$ cat destination_dir/copy.txt
hello
3.3 拷贝指定文件到上级目录
/* 查看当前所在路径 */
[Mortal@VM-12-16-centos test_cp]$ pwd
/home/Mortal/test_cp
/* 执行操作: */
[Mortal@VM-12-16-centos test_cp]$ cp origin_dir/test_origin.txt ../copy.txt
/* 返回上级并查看目录: */
[Mortal@VM-12-16-centos test_cp]$ cd ..
[Mortal@VM-12-16-centos ~]$ pwd
/home/Mortal
/* 查看是否存在拷贝文件 */
[Mortal@VM-12-16-centos ~]$ ls
copy.txt(这) StudyingOrder_Linux test1 test2 test3 test_cp test_mkdir
4. 修改文件创建时间
4.1 基本操作测试
结论:不能直接拷贝目录!
[Mortal@VM-12-16-centos test_cp]$ ls
copy.txt destination_dir origin_dir
[Mortal@VM-12-16-centos test_cp]$ cp origin_dir origin_dir_backup
cp: omitting directory ‘origin_dir’
/* 无法直接操作非空目录 */
/* 测试空目录拷贝 */
[Mortal@VM-12-16-centos test_cp]$ mkdir test
[Mortal@VM-12-16-centos test_cp]$ ls
copy.txt destination_dir origin_dir test
[Mortal@VM-12-16-centos test_cp]$ cp test test_backup
cp: omitting directory ‘test’
4.2 可选项 [-r] 实现目录拷贝
结论:使用 -r 可以使用目录的拷贝,同时会拷贝非空目录下的文件!
提问:是否会拷贝非空目录下的单目录 / 多级目录?
/* 执行拷贝:空目录! */
[Mortal@VM-12-16-centos test_cp]$ cp -r test test_backup
[Mortal@VM-12-16-centos test_cp]$ ls
copy.txt destination_dir origin_dir test test_backup
/* 执行拷贝:非空目录! */
[Mortal@VM-12-16-centos test_cp]$ cp -r origin_dir origin_dir_backup
[Mortal@VM-12-16-centos test_cp]$ ls
copy.txt destination_dir origin_dir origin_dir_backup test test_backup
/* 查看目录下子文件是否拷贝 */
[Mortal@VM-12-16-centos test_cp]$ ls origin_dir_backup/
test_origin.txt
[Mortal@VM-12-16-centos test_cp]$ ls origin_dir
test_origin.txt
4.3 拷贝目录及文件
回答问题:是否会拷贝非空目录下的单目录 / 多级目录?
答:使用:cp -r … 可以直接拷贝指定目录下的全部内容!
[Mortal@VM-12-16-centos test_cp]$ rm -r test_backup
[Mortal@VM-12-16-centos test_cp]$ mkdir -p test/a/aa/aaa
[Mortal@VM-12-16-centos test_cp]$ touch test/t1.txt
[Mortal@VM-12-16-centos test_cp]$ touch test/a/aa/aaa/t2.txt
[Mortal@VM-12-16-centos test_cp]$ tree test
test
|-- a
| `-- aa
| `-- aaa
| `-- t2.txt
`-- t1.txt
3 directories, 2 files
[Mortal@VM-12-16-centos test_cp]$ cp -r test test_backup
[Mortal@VM-12-16-centos test_cp]$ ls
copy.txt destination_dir origin_dir origin_dir_backup test test_backup
[Mortal@VM-12-16-centos test_cp]$ tree test_backup/
test_backup/
|-- a
| `-- aa
| `-- aaa
| `-- t2.txt
`-- t1.txt
3 directories, 2 files
5. 相关文章或系列推荐
1. Linux 学习目录合集 ;文章来源:https://www.toymoban.com/news/detail-772626.html
2. Linux :: 【基础指令篇 :: 文件及目录操作:(4)】:: mkdir :: 创建目录:指定路径单个目录创建及一次性创建多级目录 ;
3. Linux :: 【基础指令篇 :: 文件及目录操作:(5)】:: touch:创建普通文件、修改文件创建时间及其他基本操作;
4. Linux :: 【基础指令篇 :: 文件及目录操作:(6)】:: rmidr / rm:删除空目录、删除非空目录及删除文件指令;文章来源地址https://www.toymoban.com/news/detail-772626.html
到了这里,关于Linux :: 【基础指令篇 :: 文件及目录操作:(7)】:: cp:指定文件或目录的拷贝及指定拷贝到指定路径(与重命名)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!