linux 中cp 命令的常见⽤法本篇博客来讨论中cp命令。
cp 命令⽤来复制⽂件或⽂件夹。它主要有两种形式
如果⼀次复制多个⽂件的话,target必须是⼀个⽂件夹。
下⾯是⼏个常⽤的选项 - -r --recursive  递归复制,会复制⽂件夹内部的⽂件夹,⾃动创建⽬标位置不存在的⽂件夹。多⽤于⽬录的复制 - -p  连同属性⼀起复制,⽽不是使⽤默认的属性 - -d  若-file属于link file,则复制为link file,⽽⾮⽂件本⾝
- -a --archive  等同于-prd ,常⽤于⽂件备份
- -i --interactive  若⽬标⽂件以存在,则在覆盖前询问是否覆盖
- -u --update  若源⽂件⽐⽬标⽂件新,则覆盖,否则跳过
- -f --force  强制复制
- -s -symbolic-link  复制为符号链接⽂件,即快捷⽅式⽂件,俗称软连接
git常用指令- -l --link 复制为硬连接⽂件
cp 命令除了简单的复制⽂件以外,还有⼏个⽐较常⽤的场景,分别是:备份⽂件,更新⽂件夹中的内容,创建快捷⽅式等,下⾯我们来简单地模拟⼀下。
准备⼯作:创建⼀个src⽂件夹,⾥⾯有三个⽂件,分别是:a.txt,b.txt,c.sh,使⽤ls -l 命令的输出是
c.sh是⼀个bash脚本,⾥⾯只有⼀句话,echo 'hello,world'。
如果你的c.sh⽂件没有执⾏权限,则使⽤chmod a+x c.sh 来赋予它可执⾏的权限
使⽤cp 进⾏备份
⾸先尝试将src⽂件夹备份为src-backup⽂件夹,运⾏下⾯的命令
按照提⽰,我们应该加上-r 参数,那就加上这个参数再试⼀次,成功了,仔细看⼀下src和src-backup⽂件夹内的⽂件
# ⽤法⼀:复制⼀个⽂件$ cp [option] src-file target-file # ⽤法⼆:复制多个⽂件,⽬标是⼀个⽂件夹$ cp [option] src-file1 src-file2 ... target-directory
1
2
3
4
5$ ls -al total 12drwxrwxr-x. 2 kite kite 4096 9⽉  24 10:03 .drwxr-xr-x. 4 kite kite 4096 9⽉  24 10:02 ..-rw-rw-r--. 1 kite kite    0 9⽉  24 10: -rw-rw-r--. 1 kite kite    0 9⽉  24 10: -rwxrwxr-x. 1 kite kite  19 9⽉  24 10:03 c.sh
1
2
3
4
5
6
7$ cp src src-backup cp: -r not  specified; omitting directory 'src'
1
2
会发现三个⽂件的创建时间不⼀样了。很显然,⽂件备份成这样是不太⾏的。其实,备份⽂件最常⽤的参数是-a 。让我们删掉src-backup ⽂件夹,再试⼀次
这次的⽂件时间都⼀致了,备份完成!
使⽤cp 更新⽂件夹中的内容
将a.txt中的内容随便修改⼀下,然后,我们再来备份⼀次。对⽐⼀下src⽂件夹下的a.txt和src-backup⽂件夹下的a.txt的时间
可以看出来的时间更新 接下来通过-u 参数来将更新后的a.txt备份到src-backup⽂件夹下
查看⼀下修改时间-rw-rw-r--. 1 kite kite  0 9⽉  24 10: -rwxrwxr-x. 1 kite kite 19 9⽉  24 10:03 c.sh src-backup/:total 4-rw-rw-r--. 1 kite kite  0 9⽉  24 10: -rw-rw-r--. 1 kite kite  0 9⽉  24 10: -rwxrwxr-x. 1 kite kite 19 9⽉  24 10:11 c.sh
5
6
7
8
9
10
11
12$ rm -rf src-backup/
1$ cp -a src src-backup
1$ ls -l src src-backup/src:total 4-rw-rw-r--. 1 kite kite  0 9⽉  24 10: -rw-rw-r--. 1 kite kite  0 9⽉  24 10: -rwxrwxr-x. 1 kite kite 19 9⽉  24 10:03 c.sh src-backup/:total 4-rw-rw-r--. 1 kite kite  0 9⽉  24 10: -rw-rw-r--. 1 kite kite  0 9⽉  24 10: -rwxrwxr-x. 1 kite kite 19 9⽉  24
10:03 c.sh
1
2
3
4
5
6
7
8
9
10
11
12$ ls -l -rw-rw-r--. 1 kite kite 14 9⽉  24 14:32 -rw-rw-r--. 1 kite kite  0 9⽉  24 10:02
1
2
3cp  -u src /* src-backup/
1
可以看出来,备份⽂件已经更新了 还可以指定-i 参数,在替换之前会询问是否继续。
创建快捷⽅式
src⽬录下有⼀个c.sh脚本,如果希望在任何地⽅都能运⾏它,通⽤的⽅法是在/usr/bin下⾯创建⼀个快捷⽅式。创建快捷⽅式的话,需要先进⼊⽬标⽂件夹内。我将src下的c.sh脚本创建了⼀个快捷⽅式c,从任何⼀个终端位置都可以直接运⾏c 这个命令。-rw-rw-r--. 1 kite kite  0 9⽉  24 10: -rwxrwxr-
x. 1 kite kite 19 9⽉  24 10:03 c.sh src-backup/:total 8-rw-rw-r--. 1 kite kite 24 9⽉  24 14: -rw-rw-r--. 1 kite kite  0 9⽉  24 10: -rwxrwxr-x. 1 kite kite 19 9⽉  24 10:03 c.sh
5
6
7
8
9
10
11
12$ cd /usr/bin/$ sudo cp -s ~/Demos/src/c.sh c
1
2

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。