每天一个Linux命令(10):cp和mv

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空城雀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值