文件管理命令(2)
复制命令
- copy
##  默认,只能拷贝文件
cp:copy   #注释:复制命令
cp[option]...   source dest
cp[选项]  源文件...  目标路径
## 选项如下:
-t, --target-directory=DIRECTORY  ##: 目标路径 源文件
-P, --no-dereference  ##: 保持文件属性
-r, --recursive  ##:递归复制,复制目录及目录下的所有文件 
-a, --archive  ##: 相当于-rp,既可以拷贝目录,又可以保持文件属性
-i, --interactive  ##:提示
-v, --verbose  ##: 显示拷贝的过程
## 用法 例如:
[root@Quanyi <sub>]# cp -r /123 /tmp
## 复制并改名
cp /tmp/aaa.txt /999/ooo
ooo是否存在
  - 存在
     -1)存在,并且000是个目录:将aaa.txt放到/999/ooo目录下不改名
     -2)存在,并且ooo是个普通文件:则提示是否要覆盖,输入y则覆盖,输入n则不覆盖
  - 不存在:复制到/999下,并且改名为ooo
  
## 提示
[root@Quanyi </sub>]# cp /tmp/aaa.txt /999/ooo
cp: overwrite ‘/999/ooo’? 
## 报错
[root@Quanyi <sub>]# cp /999 /tmp/
cp: omitting directory ‘/999’
## 例如
# -p 保存文件属性
[root@Quanyi </sub>]# cp -p /lqy.txt .
# 查看当前拷贝过来的文件属性
[root@Quanyi <sub>]# ll
total 0
-rw-r--r--. 1 root root 0 Mar 23 16:49 lqy.txt
drwxr-xr-x. 2 root root 6 Mar 23 15:19 oldboy
# 查看源文件属性
[root@Quanyi </sub>]# ll /
total 20
-rw-r--r--.   1 root root    0 Mar 23 16:49 lqy.txt
# -r 递归拷贝
[root@Quanyi <sub>]# cp -r /tmp /root/
[root@Quanyi </sub>]# ll
total 4
-rw-r--r--.  1 root root    0 Mar 23 16:49 lqy.txt
drwxr-xr-x.  2 root root    6 Mar 23 15:19 oldboy
drwxr-xr-t. 16 root root 4096 Mar 23 16:57 tmp
# -a 拷贝目录,保持目录属性
[root@Quanyi <sub>]# cp -a /999 /root/
[root@Quanyi </sub>]# ll
total 4
drwxr-xr-x.  3 root root   28 Mar 23 16:18 999
-rw-r--r--.  1 root root    0 Mar 23 16:49 lqy.txt
# -i 提示
[root@Quanyi <sub>]# cp  /lqy.txt /tmp/shanghai
cp: overwrite ‘/tmp/shanghai’?
## 避免提示有两种方法
1. 使用转义符:让转义符后面的内容,做它自己
[root@Quanyi </sub>]# \cp  /lqy.txt /tmp/shanghai
2.使用命令的绝对路径
[root@Quanyi <sub>]# /bin/cp  /lqy.txt /tmp/shanghai
# -v 显示拷贝过的过程
[root@Quanyi </sub>]# \cp -a -v /etc /tmp/
## 注意:当拷贝文件有多个源文件的情况下,最后一个必须是目录,不能是普通文件,也不能不存在删除命令
- remove
rm:remove ## 删除命令
## 默认,只能删除普通文件
## 语法
rm [option]...   FILE...
rm 选项...      文件...
## 选项
-i     prompt before every removal  ## 提示
-r, -R, --recursive  ## 递归删除
-f, --force  ## force 强制
-d, --dir  ## 只能删除空目录
## 例如:
[root@Quanyi <sub>]# rm /root/lqy.txt
rm: remove regular empty file ‘/root/lqy.txt’? 
# -r 递归删除
[root@Quanyi </sub>]# rm -r /root/999
rm: descend into directory ‘/root/999’? 
[root@Quanyi <sub>]# rm -r /root/tmp
rm: descend into directory ‘/root/tmp’? 
# -f 强制删除
[root@Quanyi </sub>]# rm -fr ./*
## 报错
[root@Quanyi ~]# rm /root/tmp
rm: cannot remove ‘/root/tmp’: Is a directory
/root/tmp是一个目录,rm不能直接删除
rm -r 删除mulu
rm 删除文件普通文件查看命令
- cat
cat  ## 只能查看文件内容
## 语法
cat [option]...   [file]...
cat 选项...       普通文件
## 选项
-n, --number  ## number 打印行号,显示行号
-E, --show-ends  ## end 查看文件每一行的结尾,以$符表示
-T, --show-tabs  ## Tap 查看文件中每一行内容是否含有制表符,以^I表示一个制表符
-A, --show-all  ## 即显示制表符,又显示文件的结尾
## 报错
[root@Quanyi <sub>]# cat /tmp
cat: /tmp: Is a directory
/tmp是一个目录
## 例如:
[root@Quanyi </sub>]# echo 1 > 1.txt
[root@Quanyi <sub>]# echo 1 > 2.txt
[root@Quanyi </sub>]# echo 1 > 3.txt
[root@Quanyi <sub>]# cat 1.txt
1
[root@Quanyi </sub>]# cat 1.txt 2.txt
1
1
# -n 打印行号
[root@Quanyi <sub>]# cat -n /etc/passwd
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13  nobody:x:99:99:Nobody:/:/sbin/nologin
    14  systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    15  dbus:x:81:81:System message bus:/:/sbin/nologin
    16  polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    17  sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    18  postfix:x:89:89::/var/spool/postfix:/sbin/nologin
# -E 查看文件结尾
[root@Quanyi </sub>]# cat -E 1.txt
1$
# -T 查看文件中的制表符
[root@Quanyi <sub>]# cat -T 1.txt
^I^I1^I1
# -A 即查看制表符,又查看文件结尾
[root@Quanyi </sub>]# cat -A 1.txt
^I^I1^I1$
## 搞难度用法(在文件不存在的情况下,创建文件并写入内容)
# 1.直接vi一个不存在的文件
[root@Quanyi <sub>]# vi 4.txt
[root@Quanyi </sub>]# ll
total 20
-rw-r--r--.  1 root root    6 Mar 23 18:03 1.txt
-rw-r--r--.  1 root root    2 Mar 23 17:54 2.txt
-rw-r--r--.  1 root root    2 Mar 23 17:54 3.txt
-rw-r--r--.  1 root root    1 Mar 23 18:10 4.txt
[root@Quanyi <sub>]# cat 4.txt
4
# 2.echo内容重定向到一个文件中
[root@Quanyi </sub>]# echo 5 > 5.txt
[root@Quanyi <sub>]# cat 5.txt
5
[root@Quanyi </sub>]# ll
total 24
-rw-r--r--.  1 root root    6 Mar 23 18:03 1.txt
-rw-r--r--.  1 root root    2 Mar 23 17:54 2.txt
-rw-r--r--.  1 root root    2 Mar 23 17:54 3.txt
-rw-r--r--.  1 root root    1 Mar 23 18:10 4.txt
-rw-r--r--.  1 root root    2 Mar 23 18:14 5.txt
# 3.使用cat创建文件并写入内容
[root@Quanyi <sub>]# cat >> 6.txt <<EOF
> 
> 
> 6
> EOF
[root@Quanyi </sub>]# ll
total 28
-rw-r--r--.  1 root root    6 Mar 23 18:03 1.txt
-rw-r--r--.  1 root root    2 Mar 23 17:54 2.txt
-rw-r--r--.  1 root root    2 Mar 23 17:54 3.txt
-rw-r--r--.  1 root root    1 Mar 23 18:10 4.txt
-rw-r--r--.  1 root root    2 Mar 23 18:14 5.txt
-rw-r--r--.  1 root root    4 Mar 23 18:22 6.txt
[root@Quanyi <sub>]# cat 6.txt
6
[root@Quanyi </sub>]# cat >> /tmp/shi.txt << EOF
> 慈母手中线
> 游子身上衣
> EOF
EOF:End of 以....结尾,不是固定用法,规范用法
[root@Quanyi <sub>]# cat >> 8.txt << quanyi
> 1
> 2
> 3
> 4
> 5
> 6
> EOF
> quanyi
[root@Quanyi </sub>]# cat 8.txt
1
2
3
4
5
6
EOF
[root@Quanyi ~]# cat >> 9.txt << $
> a
> s
> d
> $
## 注意:cat查看文件时,会将文件所有内容全部加载到内存里普通文件查看命令 扩展
- more
#more
#more  文件名
按回车,一行一行向下显示
按空格,一页一页向下显示
Ctrl + b:向上查看
Ctrl + f:向下查看- less
# less
#less 文件名
Ctrl + b:向上查看
Ctrl + f:向下查看
按回车,一行一行向下显示
按空格,一页一页向下显示
输入/关键字,高亮显示,所有匹配到的内容按n,查找下一个关键字Shift + n 查找上一个关键字- head
# head
#head  文件名
默认显示一个文件的前10行内容
## 选项
-n:指定查看文件开头的前N行,n可以省略- tail
# tail
# tail  文件名
默认显示一个文件的后10行内容
## 选项
-n:指定查看文件末尾的后N行,n可以省略
-f:follow,跟踪,动态跟踪一个文件的末尾
# 例如:
查看默认显示一个文件的后10行内容
[root@Quanyi <sub>]# tail /etc/services
3gpp-cbsp       48049/tcp               # 3GPP Cell Broadcast Service Protocol
isnetserv       48128/tcp               # Image Systems Network Services
isnetserv       48128/udp               # Image Systems Network Services
blp5            48129/tcp               # Bloomberg locator
blp5            48129/udp               # Bloomberg locator
com-bardac-dw   48556/tcp               # com-bardac-dw
com-bardac-dw   48556/udp               # com-bardac-dw
iqobject        48619/tcp               # iqobject
iqobject        48619/udp               # iqobject
matahari        49000/tcp               # Matahari Broker
[root@Quanyi </sub>]# tail -n 3 /etc/services
iqobject        48619/tcp               # iqobject
iqobject        48619/udp               # iqobject
matahari        49000/tcp               # Matahari Broker
[root@Quanyi <sub>]# tail -3 /etc/services
iqobject        48619/tcp               # iqobject
iqobject        48619/udp               # iqobject
matahari        49000/tcp               # Matahari Broker
[root@Quanyi </sub>]# tail -f 9.txt
a
s
d









