0
点赞
收藏
分享

微信扫一扫

文件管理命令02

复制命令

cp: copy
cp [option]... source dest
cp [选项] 源文件... 目标路径

默认只能拷贝文件

## 选项
-t:目标路径 源文件
-p:保持文件属性
-r: 递归复制,复制目录及目录下的所有文件
-a: 相当于-rp,既可以拷贝目录,又可以保持文件属性
-i: 提示
-v: 显示拷贝的过程

## 用法
[root@localhostroot\ <sub> ] # cp /root/abc/oldsix.txt /tmp/

## 复制并改名
cp /abc/oldsix.txt /tmp/ppp
ppp是否存在
- 存在
1)存在,并且ppp是个目录:将oldsix.txt放到/tmp/ppp目录下,不改名
[root@localhostroot\ </sub> ] # cp abc/oldsix.txt /tmp/ppp
[root@localhostroot\ <sub> ] # ls /tmp/ppp
oldsix.txt

2)存在,并且ppp是个普通文件:则提示是否要覆盖,输入y则覆盖,输入n则不覆盖
[root@localhostroot\ </sub> ] # cp abc/oldsix.txt /tmp/ppp
cp: overwrite ‘/tmp/ppp’? y

- 不存在:复制到/tmp下,并且改名为ppp
[root@localhostroot\ <sub> ] # cp abc/oldsix.txt /tmp/ppp

## 提示
[root@localhostroot\ </sub> ] # cp abc/oldsix.txt /tmp/ppp
cp: overwrite ‘/tmp/ppp’?

## 报错
[root@localhostroot\ <sub> ] # cp abc /tmp/
cp: omitting directory ‘abc’

## 举例
# -p保持文件属性
[root@localhostroot\ </sub> ] # cp -p abc/oldsix.txt .
cp: overwrite ‘./oldsix.txt’? y
# 查看当前拷贝过来的文件属性
[root@localhostroot\ <sub> ] # ll
total 0
drwxr-xr-x. 2 root root 24 Mar 23 15:54 abc
-rw-r--r--. 1 root root 0 Mar 23 16:09 oldsix.txt
# 查看源文件属性
[root@localhostroot\ </sub> ] # ll abc/
total 0
-rw-r--r--. 1 root root 0 Mar 23 16:09 oldsix.txt

# -r递归拷贝
[root@localhostroot\ <sub> ] # cp -r /tmp /root
[root@localhostroot\ </sub> ] # ll
total 4
drwxr-xr-x. 2 root root 24 Mar 23 15:54 abc
-rw-r--r--. 1 root root 0 Mar 23 16:09 oldsix.txt
drwxr-xr-t. 19 root root 4096 Mar 23 16:33 tmp

# -a拷贝目录,保持目录属性
[root@localhostroot\ <sub> ] # cp -a abc /tmp
[root@localhostroot\ </sub> ] # ll tmp
total 4
-rwx------. 1 root root 836 Mar 23 16:33 ks-script-DdBArs
drwxr-xr-x. 2 root root 6 Mar 23 16:33 oldboy
drwxr-xr-x. 2 root root 6 Mar 23 16:33 oldgirl
-rw-r--r--. 1 root root 0 Mar 23 16:33 oldsix.txt

# -i提示
[root@localhostroot\ <sub> ] # cp -i abc/oldsix.txt /tmp/ppp
cp: overwrite ‘/tmp/ppp/oldsix.txt’?

[root@localhostroot\ </sub> ] # alias
alias cp='cp -i'

## 避免提示有三种方法:
1.使用转义符:让转义符后面的内容,做他自己
[root@localhostroot\ <sub> ] # \cp abc/oldsix.txt /tmp/ppp

2.使用命令的绝对路径
[root@localhostroot\ </sub> ] # /bin/cp -a /etc /tmp

3.命令别名修改,使用alias,在其中修改cp='cp -i'别名

# -v显示拷贝的过程
[root@localhostroot\ ~ ] # \cp -a -v /etc /tmp/

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

删除命令

rm: remove
默认,只删除普通文件

## 语法
rm [option]...file...
rm 选项... 文件...

## 选项
-i: 提示
-r: 递归删除
-f: force强制删除
----------------------
-d:只能删除空目录

##举例
[root@localhostroot\ <sub> ] # rm abc/oldsix.txt
rm: remove regular empty file ‘abc/oldsix.txt’?

# -r递归删除
[root@localhostroot\ </sub> ] # rm -r /root/abc/
rm: descend into directory ‘/root/abc/’? y
rm: remove regular empty file ‘/root/abc/oldsix.txt’? y
rm: remove directory ‘/root/abc/’? y

# -f强制删除(无删除提示)
[root@localhostroot\ <sub> ] # rm -fr ./abc/*

## 报错
[root@localhostroot\ </sub> ] # ls
oldsix.txt tmp
[root@localhostroot\ ~ ] # rm tmp
rm: cannot remove ‘tmp’: Is a directory

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

普通文件查看命令

cat 只能查看文件内容

## 语法
cat [option]...[file]...

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

## 报错
[root@localhostroot\ <sub> ] # cat /tmp
cat: /tmp: Is a directory
/tmp是一个目录

## 举例
[root@localhostroot\ </sub> ] # echo 1 > 1.txt
[root@localhostroot\ <sub> ] # echo 2 > 2.txt
[root@localhostroot\ </sub> ] # echo 3 > 3.txt
[root@localhostroot\ <sub> ] # cat 1.txt
1
[root@localhostroot\ </sub> ] # cat 1.txt 3.txt 2.txt
1
3
2

# -n打印行号
[root@localhostroot\ <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
19 laonanhai:x:1000:1000:Laonanhai:/home/laonanhai:/bin/bash
20 wy:x:1001:1001::/home/wy:/bin/bash

# -E查查文件结尾
[root@localhostroot\ </sub> ] # cat -E 1.txt
112344456 $
1$
2$
3 $
4 $
5 $
6 $
7 $
$

# -T 查看文件中的制表符
[root@localhostroot\ <sub> ] # cat -T 1.txt
112344456
1
2
3
4
5^I^I
6
7^I^I


# -A 既查看制表符,又查看文件结尾
[root@localhostroot\ </sub> ] # cat -ET 1.txt
112344456 $
1$
2$
3 $
4 $
5^I^I $
6 $
7^I^I$
$

## 高难度用法(在文件不存在的情况下,创建文件并写入内容)
# 1.直接vi一个不存在的文件
[root@localhostroot\ <sub> ] # vi 4.txt
[root@localhostroot\ </sub> ] # ll
total 20
-rw-r--r--. 1 root root 50 Mar 23 17:08 1.txt
-rw-r--r--. 1 root root 2 Mar 23 17:04 2.txt
-rw-r--r--. 1 root root 2 Mar 23 17:04 3.txt
-rw-r--r--. 1 root root 33 Mar 23 17:15 4.txt
-rw-r--r--. 1 root root 0 Mar 23 16:09 oldsix.txt
drwxr-xr-t. 19 root root 4096 Mar 23 16:33 tmp
[root@localhostroot\ <sub> ] # cat 4.txt
123
345
678
901

# 2.echo内容重定向到一个文件中
[root@localhostroot\ </sub> ] # echo 5 > 5.txt
[root@localhostroot\ <sub> ] # cat 5.txt
5
[root@localhostroot\ </sub> ] # ll
total 24
-rw-r--r--. 1 root root 50 Mar 23 17:08 1.txt
-rw-r--r--. 1 root root 2 Mar 23 17:04 2.txt
-rw-r--r--. 1 root root 2 Mar 23 17:04 3.txt
-rw-r--r--. 1 root root 17 Mar 23 17:15 4.txt
-rw-r--r--. 1 root root 2 Mar 23 17:18 5.txt
-rw-r--r--. 1 root root 0 Mar 23 16:09 oldsix.txt
drwxr-xr-t. 19 root root 4096 Mar 23 16:33 tmp

# 3.使用cat创建文件并写入内容
cat 定向输出 >> 指定文件 <<结尾词

[root@localhostroot\ <sub> ] # cat >> 6.txt <<EOF
> 6
> 7
> EOF
[root@localhostroot\ </sub> ] # ll
total 28
-rw-r--r--. 1 root root 50 Mar 23 17:08 1.txt
-rw-r--r--. 1 root root 2 Mar 23 17:04 2.txt
-rw-r--r--. 1 root root 2 Mar 23 17:04 3.txt
-rw-r--r--. 1 root root 17 Mar 23 17:15 4.txt
-rw-r--r--. 1 root root 2 Mar 23 17:18 5.txt
-rw-r--r--. 1 root root 4 Mar 23 17:22 6.txt
-rw-r--r--. 1 root root 0 Mar 23 16:09 oldsix.txt
drwxr-xr-t. 19 root root 4096 Mar 23 16:33 tmp

[root@localhostroot\ <sub> ] # cat >> /tmp/luxun.txt <<EOF
> 真正的勇士
> 敢于直面惨淡的人生
> EOF

EOF:End Of 以....结尾,不是固定用法,规范用法,可以替换成你想要的任何字符。

[root@localhostroot\ </sub> ] # cat >> 8.txt <<over
> 888
> 88
> 8
> over

## 注意:cat查看文件时,会将文件所有内容全部加载到内存里(注意文件的大小,避免内存爆了)

普通文件查看命令 扩展

# more
more 文件名
(可使用more /var/log/message 查看进行演示)
按回车,一行一行向下显示
按空格,一页一页向下显示
Ctrl + b:向上查看
Ctrl + f:向下查看

# less
less 文件名
按回车,一行一行向下显示
按空格,一页一页向下显示
Ctrl + b:向上查看
Ctrl + f:向下查看

输入/关键字,高亮显示,所有匹配到的内容
按n,查找下一个关键字
Shift + n 查找上一个关键字
(注意退出,使用shift+ZZ退出)

# head
head 文件名
默认显示一个文件的前10行内容

## 选项
-n:指定查看文件开头的前N行,n可以省略
[root@localhostroot\ <sub> ] # head -n 3 /var/log/messages
Mar 22 03:29:01 localhost rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-34.el7" x-pid="7095" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Mar 22 16:20:16 localhost kernel: Initializing cgroup subsys cpuset
Mar 22 16:20:16 localhost kernel: Initializing cgroup subsys cpu

# tail
tail 文件名
默认显示一个文件的后10行内容

[root@localhostroot\ </sub> ] # tail /var/log/messages
Mar 23 10:01:01 localhost systemd: Started Session 3 of user root.
Mar 23 10:39:35 localhost systemd: Started Session 4 of user root.
Mar 23 10:39:35 localhost systemd-logind: New session 4 of user root.
Mar 23 11:01:02 localhost systemd: Started Session 5 of user root.
Mar 23 12:01:01 localhost systemd: Started Session 6 of user root.
Mar 23 13:01:01 localhost systemd: Started Session 7 of user root.
Mar 23 14:01:02 localhost systemd: Started Session 8 of user root.
Mar 23 15:01:01 localhost systemd: Started Session 9 of user root.
Mar 23 16:01:01 localhost systemd: Started Session 10 of user root.
Mar 23 17:01:01 localhost systemd: Started Session 11 of user root.

## 选项
-n:指定查看文件末尾的后N行,N可省略
-f:follow,跟踪,动态跟踪一个文件的末尾(日志中经常用来查看新登录用户)

[root@localhostroot\ ~ ] # tail -n 3 /var/log/messages
Mar 23 15:01:01 localhost systemd: Started Session 9 of user root.
Mar 23 16:01:01 localhost systemd: Started Session 10 of user root.
Mar 23 17:01:01 localhost systemd: Started Session 11 of user root.

文件管理命令02_文件属性

举报

相关推荐

0 条评论