cp:copy,复制文件或目录。
1、复制源文件到目标目录
格式:cp [选项] 源文件 目录
注意:带-a,文件的时间是一样的;不带-a,复制过来的文件是当前的时间。
[root@localhost ppp]# ll
total 8
-rw-r--r--. 1 root root 0 Mar 30 13:45 1.sh
-rw-r--r--. 1 root root 7 Mar 30 13:46 1.txt
`-rw-r--r--. 1 root root 664 Apr 7 09:44 tmp.log`
`[root@localhost ppp]# cp -a tmp.log ../ttt/`
[root@localhost ppp]# cd ../ttt/
[root@localhost ttt]# ll
total 8
-rw-r--r--. 1 root root 29 Apr 1 17:30 1.txt
-rwxrwxrwx. 1 root root 0 Mar 29 14:59 2.sh
-rw-r--r--. 1 root root 0 Mar 29 14:41 2.txt
-rwxrwxrwx. 1 root root 0 Mar 29 14:59 3.sh
-rw-r--r--. 1 root root 0 Mar 29 14:41 3.txt
-rw-r--r--. 1 root root 0 Mar 29 15:07 file1
-rw-r--r--. 1 root root 0 Mar 29 15:07 file2
-rw-r--r--. 1 root root 0 Mar 29 15:07 file3
`-rw-r--r--. 1 root root 664 Apr 7 09:44 tmp.log`
2、目标目录已存在相同文件时
系统会询问是否覆盖已存在文件,使用y或n进行选择即可
[root@localhost ttt]# cd ../ppp/
[root@localhost ppp]# ll
total 8
-rw-r--r--. 1 root root 0 Mar 30 13:45 1.sh
-rw-r--r--. 1 root root 7 Mar 30 13:46 1.txt
-rw-r--r--. 1 root root 664 Apr 7 09:44 tmp.log
[root@localhost ppp]# cp tmp.log ../ttt/
cp: overwrite '../ttt/tmp.log'?
3、cp -s 创建链接
cp -s 创建一个符号链接,而不是拷贝
make symbolic links instead of copying
[root@localhost ppp]# cp -s /home/syq/a/ttt/tmp.log tmp_link.log
[root@localhost ppp]# ll
total 4
-rw-r--r--. 1 root root 0 Mar 30 13:45 1.sh
-rw-r--r--. 1 root root 7 Mar 30 13:46 1.txt
lrwxrwxrwx. 1 root root 23 Apr 7 12:01 tmp_link.log -> /home/syq/a/ttt/tmp.log
[root@localhost ppp]# cat tmp_link.log
/dev/core
/proc/sys/net/core
/usr/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/core
/usr/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/memstick/core
与ln -s相似,区别是cp -s不可以创建目录
的链接
[root@localhost a]# ll
total 4
drwxr-xr-x. 2 root root 51 Apr 7 12:01 ppp
-rw-r--r--. 1 root root 664 Apr 6 14:34 tmp.log
drwxr-xr-x. 5 syq syq 153 Apr 7 09:45 ttt
[root@localhost a]# cp -s ppp/ ppp_link
cp: -r not specified; omitting directory 'ppp/'
[root@localhost a]# ln -s ppp/ ppp_link
[root@localhost a]# ll
total 4
drwxr-xr-x. 2 root root 51 Apr 7 12:01 ppp
lrwxrwxrwx. 1 root root 4 Apr 7 12:04 ppp_link -> ppp/
-rw-r--r--. 1 root root 664 Apr 6 14:34 tmp.log
drwxr-xr-x. 5 syq syq 153 Apr 7 09:45 ttt
mv:move,移动,剪切。移动文件或将文件重命名。
格式:mv [选项] 源文件/目录 目标文件/目录
1、移动
[root@localhost a]# cd ddd
[root@localhost ddd]# ll
total 0
[root@localhost ddd]# cd ../ppp
[root@localhost ppp]# ls
1.sh 1.txt ddd tmp_link.log tmp.log
[root@localhost ppp]# mv tmp.log ../ddd/
[root@localhost ppp]# ls
1.sh 1.txt ddd tmp_link.log
[root@localhost ppp]# ls ../ddd/
tmp.log
[root@localhost ppp]#
2、文件/目录重命名
[root@localhost ppp]# ll
total 1
-rw-r--r--. 1 root root 0 Mar 30 13:45 1.sh
[root@localhost ppp]# mv 1.sh 12.sh
[root@localhost ppp]# ll
total 1
-rw-r--r--. 1 root root 0 Mar 30 13:45 12.sh
`#目录同样操作`
[root@localhost ppp]# ll
total 3
-rw-r--r--. 1 root root 0 Mar 30 13:45 12.sh
-rw-r--r--. 1 root root 7 Mar 30 13:46 1.txt
drwxr-xr-x. 2 root root 6 Apr 7 12:14 ddd
[root@localhost ppp]# mv ddd/ ggg
[root@localhost ppp]# ll
total 4
-rw-r--r--. 1 root root 0 Mar 30 13:45 12.sh
-rw-r--r--. 1 root root 7 Mar 30 13:46 1.txt
drwxr-xr-x. 2 root root 6 Apr 7 12:14 ggg
3、操作多份文件
mv后带多份文件即可
[root@localhost ppp]# ll
total 4
-rw-r--r--. 1 root root 0 Mar 30 13:45 12.sh
-rw-r--r--. 1 root root 7 Mar 30 13:46 1.txt
drwxr-xr-x. 2 root root 6 Apr 7 12:14 ggg
lrwxrwxrwx. 1 root root 23 Apr 7 12:01 tmp_link.log -> /home/syq/a/ttt/tmp.log
[root@localhost ppp]# ls ggg/
[root@localhost ppp]# mv 1.txt 12.sh ggg/
[root@localhost ppp]# ls
ggg tmp_link.log
[root@localhost ppp]# ls ggg
12.sh 1.txt
4、目录在前的情况
通常习惯于将目标目录放在后方,但当选项使用-t时,目录在前。
`[root@localhost ggg]# mv -t ../../ppp 1.txt 12.sh `
[root@localhost ggg]# ls
[root@localhost ggg]# ls ../../ppp
12.sh 1.txt ggg tmp_link.log
5、mv目录
mv 文件1 文件2 是重命名,那么
mv 目录1 目录2 是重命名吗
[root@localhost ppp]# ll
total 4
-rw-r--r--. 1 root root 0 Mar 30 13:45 12.sh
-rw-r--r--. 1 root root 7 Mar 30 13:46 1.txt
`drwxr-xr-x. 2 root root 20 Apr 7 12:23 ggg
drwxr-xr-x. 2 root root 20 Apr 7 12:24 kkk`
[root@localhost ppp]# mv ggg/ kkk/
[root@localhost ppp]# ll
total 3
-rw-r--r--. 1 root root 0 Mar 30 13:45 12.sh
-rw-r--r--. 1 root root 7 Mar 30 13:46 1.txt
`drwxr-xr-x. 3 root root 31 Apr 7 12:24 kkk`
答案不是。这样才是修改目录名的方法
如果kkk_back不存在,则将kkk重命名为kkk_back;如果已存在,则是将kkk移动至kkk_back
[root@localhost ppp]# ll
total 4
-rw-r--r--. 1 root root 0 Mar 30 13:45 12.sh
-rw-r--r--. 1 root root 7 Mar 30 13:46 1.txt
drwxr-xr-x. 3 root root 31 Apr 7 12:24 `kkk`
`[root@localhost ppp]# mv kkk/ kkk_back`
[root@localhost ppp]# ll
total 4
-rw-r--r--. 1 root root 0 Mar 30 13:45 12.sh
-rw-r--r--. 1 root root 7 Mar 30 13:46 1.txt
drwxr-xr-x. 3 root root 31 Apr 7 12:24 `kkk_back`
6、将当前文件全部移至上一级目录
[root@localhost ppp]# ll
total 4
-rw-r--r--. 1 root root 0 Mar 30 13:45 12.sh
-rw-r--r--. 1 root root 7 Mar 30 13:46 1.txt
drwxr-xr-x. 3 root root 31 Apr 7 12:24 kkk
[root@localhost ppp]# cd kkk
[root@localhost kkk]# ls
ggg kkk.sh
`[root@localhost kkk]# mv * ../`
[root@localhost kkk]# ll
total 0
[root@localhost kkk]# ll ../
total 4
-rw-r--r--. 1 root root 0 Mar 30 13:45 12.sh
-rw-r--r--. 1 root root 7 Mar 30 13:46 1.txt
drwxr-xr-x. 2 root root 20 Apr 7 12:23 ggg
drwxr-xr-x. 2 root root 6 Apr 7 12:30 kkk
-rw-r--r--. 1 root root 0 Apr 7 12:24 kkk.sh
7、mv -b 备份
当目标文件已存在时,需要进行覆盖,使用-b则会主动备份
drwxr-xr-x. 2 root root 6 Apr 7 12:30 kkk
-rw-r--r--. 1 root root 0 Apr 7 12:24 kkk.sh
[root@localhost ppp]# mv -b 1.txt 12.sh
mv: overwrite '12.sh'? y
[root@localhost ppp]# ll
total 4
-rw-r--r--. 1 root root 7 Mar 30 13:46 12.sh
-rw-r--r--. 1 root root 0 Mar 30 13:45 12.sh~
drwxr-xr-x. 2 root root 20 Apr 7 12:23 ggg
drwxr-xr-x. 2 root root 6 Apr 7 12:30 kkk
-rw-r--r--. 1 root root 0 Apr 7 12:24 kkk.sh