复制命令cp

cp: copy

用法

  • 默认,只能拷贝文件

  • 用来将一个或多个源文件或者目录复制到指定的目录文件或目录


cp [option]... source   dest
cp [选项] 源文件... 目标路径
-t:目标路径 源文件
-p:保持文件属性
-r:递归复制,复制目录及目录下的所有文件
-a:相当于-rp,既可以拷贝目录,又可以保持文件属性
-i:文件即将覆盖的提示
-v:显示,拷贝的过程


复制并改名

cp /123/oldboy.txt /tmp/000

000是否存在

  • 存在 1)存在,并且ooo是个目录:将oldboy.txt放到/tmp/ooo目录下 2)存在,并且ooo是个普通文件:则提示是否要覆盖,输入y则覆盖,输入n则不覆盖
  • 不存在:复制到/tmp下,并且改名为000

举例:

-p保持文件属性

[root@localhost ~]# cp -p /123/oldboy.txt .

查看当前拷贝过来的文件属性

[root@localhost ~]# ll
total 4
-rw-r--r-- 1 root root 4 Mar 23 16:42 oldboy.txt

查看源文件属性

[root@localhost ~]# ll /123/
total 4
-rw-r--r-- 1 root root 4 Mar 23 16:42 oldboy.txt

-r递归拷贝

[root@localhost ~]# cp -r /tmp /root/
[root@localhost ~]# ll
total 0
drwxr-xr-t 11 root root 208 Mar 23 16:46 tmp
[root@localhost ~]# cp -r /123 /root/
[root@localhost ~]# ll
total 0
drwxr-xr-x 2 root root 24 Mar 16:48 123
drwxr-xr-t 11 root root 208 Mar 23 16:48 tmp

-a拷贝目录,保持目录属性

[root@localhost ~]# cp -a /abc /root/
[root@localhost ~]# ll
total 0
drwxr-xr-x 2 root root 24 Mar 23 09:46 abc

-i文件即将覆盖的提示

[root@localhost ~]# cp -i /123/oldboy.txt /tmp/wjh
cp: overwrite ‘/tmp/wjh’?
--------------------------------------------------
# 避免提示有两种方法
1.使用转义符:让转义符后面的内容,做它自己
[root@localhost ~]# \cp -a /etc /tmp/
2.使用命令的绝对路径
[root@localhost ~]# /bin/cp -a /etc /tmp/

-v显示拷贝的过程

[root@localhost ~]# \cp -a -v /etc /tmp/

*注意:当拷贝文件有多个源文件的情况下,最后一个必须是目录,不能是普通文件,也不能不存在

删除命令rm

用法

  • 默认,只能删除普通文件

  • 危险命令,小心使用

  • rm -r 删除目录 ,rm 删除文件

命令格式:rm [OPTION]... FILE...

rm 选项... 文件...

选项

-i:提示是否删除
-r:递归删除
-f:force 强制
-d:只能删除空目录(一般不使用)

-i:提示是否删除

[root@localhost ~]# rm /tmp/123

rm: remove regular empty file ‘/tmp/123’?

-r:递归删除

[root@localhost ~]# rm -r /root/123/

rm: descend into directory ‘/root/123/’? y

rm: remove regular file ‘/root/123/oldboy.txt’? y

rm: remove directory ‘/root/123/’? y

-f强制删除

[root@localhost ~]# rm -fr ./*

[root@localhost ~]# rm /root/abc/

rm: cannot remove ‘/root/abc/’: Is a directory

/root/abc是一个目录,rm不能直接删除

普通文件查看命令cat

用法

  • cat只能查看文件内容

cat [OPTION]... [FILE]...

cat 选项... 普通文件...

选项

-n:number 打印行号,显示行号
-E:end ,查看文件每一行的结尾,以$符表示
-T:Tab,查看文件中每一行内容是否含有制表符。以^I表示一个制表符
-A:既显示制表符,又显示文件的结尾

错误提示

[root@localhost ~]# cat /tmp

cat: /tmp: Is a directory

/tmp是一个目录

[root@localhost ~]# echo 1 > 1.txt

[root@localhost ~]# echo 2 > 2.txt

[root@localhost ~]# echo 3 > 3.txt

[root@localhost ~]# cat 1.txt

1

[root@localhost ~]# cat 1.txt 2.txt

1

2

-n:number 打印行号,显示行号

[root@localhost ~]# cat -n /etc/passwd

1 root❌0:0:root:/root:/bin/bash

2 bin❌1:1:bin:/bin:/sbin/nologin

3 daemon❌2:2:daemon:/sbin:/sbin/nologin

4 adm❌3:4:adm:/var/adm:/sbin/nologin

5 lp❌4:7:lp:/var/spool/lpd:/sbin/nologin

6 sync❌5:0:sync:/sbin:/bin/sync

7 shutdown❌6:0:shutdown:/sbin:/sbin/shutdown

8 halt❌7:0:halt:/sbin:/sbin/halt

9 mail❌8:12:mail:/var/spool/mail:/sbin/nologin

10 operator❌11:0:operator:/root:/sbin/nologin

11 games❌12💯games:/usr/games:/sbin/nologin

12 ftp❌14:50:FTP User:/var/ftp:/sbin/nologin

13 nobody❌99:99:Nobody:/:/sbin/nologin

14 systemd-network❌192:192:systemd Network Management:/:/sbin/nologin

15 dbus❌81:81:System message bus:/:/sbin/nologin

16 polkitd❌999:998:User for polkitd:/:/sbin/nologin

17 sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

18 postfix❌89:89::/var/spool/postfix:/sbin/nologin

19 rpc❌32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin

20 rpcuser❌29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

21 nfsnobody❌65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

22 ntp❌38:38::/etc/ntp:/sbin/nologinE 查看文件结尾

-E 查看文件结尾

[root@localhost ~]# cat -E 1.txt

1 $

2 $

3 $

*查看每一行 以$结尾

-T

T 查看文件中的制表符

[root@localhost ~]# cat -T 1.txt

1^I^I

^I2

3^I^I6

^I:-A 既查看制表符,又查看文件结尾

高难度用法(在文件不存在的情况下,创建文件并写入内容)

1.直接vi一个不存在的文件

[root@localhost ~]# vi 3.txt

[root@localhost ~]# ll

total 8

[root@localhost ~]# ll 3.txt

[root@localhost ~]# cat 3.txt

1.txt

2.txt

3.txt

2.echo内容重定向到一个文件中

[root@localhost ~]# echo 4 > 3.txt

[root@localhost ~]# cat 3.txt

4

cat >> /tmp/shi.txt << EOF

[root@localhost ~]# cat >> /tmp/zhuerchong.txt << EOF

猪儿这么可爱 为什么这么好吃 EOF [root@localhost ~]# cat /tmp/zhuerchong.txt 猪儿这么可爱 为什么这么好吃

EOF:End Of 以....结尾,不是固定用法,规范用法,前后呼应输入完内容再重新输入命令结尾的字符即可

*注意:cat查看文件时,会将文件所有内容全部加载到内存里

普通文件查看命令扩展

more
more 文件名
按回车,一行一行向下显示
按空格,一页一页向下显示
Ctrl + b:向上查看
Ctrl + f:向下查看
less
less 文件名
Ctrl + b:向上查看
Ctrl + f:向下查看
按回车,一行一行向下显示
按空格,一页一页向下显示
输入/关键字,高亮显示,所有匹配到的内容
按n,查找下一个关键字
Shift + n 查找上一个关键字
head
head 文件名
默认显示一个文件的前10行内容

选项

-n:指定查看文件开头的前N行,n可以省略

[root@localhost ~]# head -n 3 /etc/services

/etc/services:

$Id: services,v 1.55 2013/04/14 ovasik Exp $