文件管理命令

复制命令

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

## 用法
[root@localhost <sub>]# cp /abc/oldboy.txt /tm

在/abc/123文件里写出zls
[root@shiying </sub>]# echo zls>/abc/123
cat查看123文件里写的内容
[root@shiying <sub>]# cat /abc/123
zls
## 复制并改名
cp /abc/oldboy.txt /tmp/ooo
ooo是否存在
-存在[root@shiying </sub>]# mkdir /tmp/ooo
1)存在,并且ooo是个目录:将oldboy.txt放到/tmp/ooo目录下,不改名

[root@shiying <sub>]# cp /abc/oldboy.txt /tmp/ooo
cp: overwrite ‘/tmp/ooo/oldboy.txt’? y
[root@shiying </sub>]# ll /tmp/ooo
total 0
-rw-r--r--. 1 root root 0 Mar 23 23:32 oldboy.txt

2)存在,并且ooo是个‘普通文件’:则提示是否要覆盖,输入y则覆盖,输入n则不覆盖

创建ooo普通文件
[root@shiying <sub>]# touch /tmp/ooo
查看ooo文件没内容
[root@shiying </sub>]# cat /tmp/ooo
提示是不是要覆盖
[root@shiying <sub>]# cp /abc/oldboy.txt /tmp/ooo
cp: overwrite ‘/tmp/ooo’?
输入y则覆盖,输入n则不覆盖
cp: overwrite ‘/tmp/ooo’? y

-不存在:复制到/tmp下,并且改名为ooo
[root@shiying </sub>]# cp /abc/oldboy.txt /tmp/ooo
[root@shiying <sub>]# ll /tmp
[root@shiying </sub>]# cp /abc/oldboy.txt /tmp/ooo
-rw-r--r--. 1 root root 0 Mar 23 23:15 ooo
删除/tmp目录下的ooo文件
[root@shiying <sub>]# rm -rf /tmp/ooo

## 提示
root@shiying </sub>]# cp /abc/oldboy.txt /tmp/ooo
cp: overwrite ‘/tmp/ooo’?

## 报错
[root@localhost <sub>]# cp /abc /tmp/cp: omitting directory ‘/abc’
## 举例
# -p保持文件属性
[root@localhost </sub>]# cp -p /abc/oldboy.txt .

查看当前abc文件
[root@shiying <sub>]# ll /abc
-rw-r--r--. 1 root root 0 Mar 23 23:14 oldboy.txt
加上-p
[root@shiying </sub>]# cp -p /abc/oldboy.txt .
[root@shiying <sub>]# ll
-rw-r--r--. 1 root root 0 Mar 23 23:14 oldboy.txt 日期不变
# 查看当前拷贝过来的文件属性
[root@localhost </sub>]# ll
-rw-r--r--1 root root 4 Mar 2310:04 oldboy.txt
# 查看源文件属性
[root@localhost <sub>]# ll /abc
-rw-r--r--1 root root 4 Mar 2310:04 oldboy.txt


将/abc/oldboy.txt复制到/tmp/目录下
[root@localhost </sub>]# cp /abc/oldboy.txt /tmp/
查看源文件属性
[root@shiying <sub>]# ll
total 0
-rw-r--r--. 1 root root 0 Mar 22 02:11 zls.txt

查看拷贝过来的文件属性
[root@shiying </sub>]# ll /tmp
-rw-r--r--. 1 root root 0 Mar 23 22:41 zls.txt
# -r递归拷贝
[root@localhost <sub>]# cp -r /tmp /root
[root@localhost </sub>]# cp -r /tmp /root/
[root@localhost <sub>]# ll
drwxr-xr-t 11 root root 208 Mar 2310:19 tmp
[root@localhost </sub>]# cp -r /abc /root
[root@localhost <sub>]# ll
rwxr-xr-x 2 root root 24 Mar 2310:20 abc
drwxr-xr-t 11 root root 208 Mar 2310:19 tmp

查看TMP下目录
root@shiying </sub>]# ll /tmp
-rw-r--r--. 1 root root 0 Mar 23 22:38 cp
复制目录及目录下的所有文件
[root@shiying <sub>]# cp -r /tmp/cp /root/
[root@shiying </sub>]# ll /root
-rw-r--r--. 1 root root 0 Mar 24 00:31 cp
# -a拷贝目录,保持目录属性
[root@localhost <sub>]# cp -a /abc /root/
[root@localhost </sub>]# ll
drwxr-xr-x 2 root root 24 Mar 2309:46 abc
# -rp既保持属性又递归复制
将/tmp/ooo文件复制到root下
[root@shiying <sub>]# cp -rp /tmp/ooo /root/
查看root下文件
root@shiying </sub>]# ll /root
total 4
-rw-r--r--. 1 root root 0 Mar 24 00:07 ooo
复制后的ooo文件日期属性和 /tmp下相同
[root@shiying <sub>]# ll /tmp
-rw-r--r--. 1 root root 0 Mar 24 00:07 ooo
-a:相当于-rp,既可以拷贝目录,又可以保持文件属性
[root@shiying </sub>]# cp -rp ./cp /tmp/
[root@shiying <sub>]# ll /tmp
total 4
-rw-r--r--. 1 root root 0 Mar 23 22:38 cp


# -i提示
[root@localhost </sub>]# cp -i /abc/oldboy.txt /tmp/zhujiao
cp: overwrite ‘/tmp/zhujiao
-i:提示
[root@shiying <sub>]# alias
alias cp='cp -i'

## 避免提示有两种方法
1.使用转义符:让转义符后面的内容,做它自己
[root@localhost </sub>]# \cp -a /etc /tmp
2.使用命令的绝对路径
[root@localhost <sub>]# /bin/cp -a /etc /tm
# -v显示拷贝的过程
[root@localhost </sub>]# \cp -a -v /etc /tmp


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

删除命令

rm:remove
默认,只能删除普通文件
## 语法
rm [OPTION]... FILE.
rm 选项... 文件...
## 选项
-i:提示
-r:递归删除
-f:force 强制
-d:只能删除空目录
## 举例
[root@localhost <sub>]# rm /tmp/ooo
rm: remove regular empty file ‘/tmp/ooo
# -r递归删除
[root@localhost </sub>]# rm -r /root/abc/
rm: descend into directory ‘/root/abc/’? y
rm: remove regular file ‘/root/abc/oldboy.txt’? y
rm: remove directory ‘/root/abc/’?y
# -f强制删除
[root@localhost <sub>]# rm -fr ./
## 报错
[root@localhost </sub>]# rm /root/abc/
rm: cannot remove ‘/root/abc/’: Is a direct
/root/abc是一个目录,rm不能直接删除
rm-r删除目录
[root@shiying <sub>]# rm -r /root /tmp
rm: descend into directory ‘/root’? y

rm删除文件
[root@shiying </sub>]# rm /root/tmp/cp
rm: remove regular empty file ‘/root/tmp/cp’? y

普通文件查看命令

cat只能查看文件内容
## 语法
cat [OPTION]... [FILE]...
cat 选项... 普通文件...
## 选项
-n:number 打印行号,显示行号
-E:end ,查看文件每一行的结尾,以$符表示
-T:Tab,查看文件中每一行内容是否含有制表符。以^I表示一个制表符
-A:既显示制表符,又显示文件的结尾


[root@shiying <sub>]# vi 123.txt
[root@shiying </sub>]# cat -ETn 123.txt
1 dhdjghfh$
2 gfhgfhkf$
3 ghfhgfgfj$
4 ^I^I^I^I^I$
5 ^I^I^Ijgkj$
6 $
## 报错
[root@localhost <sub>]# cat /tmp
cat: /tmp: Is a directory
/tmp是一个目录
## 举例[root@localhost </sub>]# echo 1 > 1.txt
[root@localhost <sub>]# echo 2 > 2.txt
[root@localhost </sub>]# echo 3 > 3.txt
[root@localhost <sub>]# cat 1.txt1
[root@localhost </sub>]# cat 1.txt
1
[root@localhost <sub>]# cat 1.txt 2.txt
1
2
# -n打印行号
[root@shiying </sub>]# cat -n /root/123.txt
1 dhdjghfh
2 gfhgfhkf
3 ghfhgfgfj
4
5 jgkj
6


# -E 查看文件结尾
[root@shiying <sub>]# cat -E /root/123.txt
dhdjghfh$
gfhgfhkf$
ghfhgfgfj$
$
jgkj$
$



# -T 查看文件中的制表符
[root@shiying </sub>]# cat -T /root/123.txt
dhdjghfh
gfhgfhkf
ghfhgfgfj
^I^I^I^I^I
^I^I^Ijgkj

# -A 既查看制表符,又查看文件结尾
[root@shiying <sub>]# cat -A /root/123.txt
dhdjghfh$
gfhgfhkf$
ghfhgfgfj$
^I^I^I^I^I$
^I^I^Ijgkj$
$

既查看制表符,又查看文件结尾 打印行号
[root@shiying </sub>]# cat -An /root/123.txt
1 dhdjghfh$
2 gfhgfhkf$
3 ghfhgfgfj$
4 ^I^I^I^I^I$
5 ^I^I^Ijgkj$
6 $

## 搞难度用法(在文件不存在的情况下,创建文件并写入内容)
# 1.直接vi一个不存在的文件
[root@shiying <sub>]# vi 456.txt
[root@shiying </sub>]# ll
total 16
-rw-r--r--. 1 root root 10 Mar 24 02:10 123456
-rw-r--r--. 1 root root 52 Mar 24 02:12 123.txt
-rw-r--r--. 1 root root 88 Mar 24 03:06 456.txt
-rw-r--r--. 1 root root 0 Mar 24 00:31 cp
-rw-r--r--. 1 root root 0 Mar 24 00:07 ooo
drwxr-xr-t. 16 root root 4096 Mar 24 01:58 tmp

[root@shiying <sub>]# cat 456.txt
hd n
hjjdh wm
hhn nnbbknn
gh bn
bb126b dn
hf65 kmn k
136ggdj n

# 2.echo内容重定向到一个文件中
[root@shiying </sub>]# echo 123456yyyy > 456.txt
[root@shiying <sub>]# cat 456.txt
123456yyyy

[root@shiying </sub>]# ll
total 16
-rw-r--r--. 1 root root 10 Mar 24 02:10 123456
-rw-r--r--. 1 root root 52 Mar 24 02:12 123.txt
-rw-r--r--. 1 root root 11 Mar 24 03:20 456.txt
-rw-r--r--. 1 root root 0 Mar 24 00:31 cp
-rw-r--r--. 1 root root 0 Mar 24 00:07 ooo
drwxr-xr-t. 16 root root 4096 Mar 24 01:58 tmp

# 3.使用cat创建文件并写入内容
[root@shiying <sub>]# cat >> 6.txt <<EOF
> YYYYYYSSSSS
> EEEYYY
> GGGJJJ
> FFGHHJ
> EOF
[root@shiying </sub>]# cat 6.txt
YYYYYYSSSSS
EEEYYY
GGGJJJ
FFGHHJ
注意:cat查看文件时,会将文件所有内容全部加载到内存

普通文件查看命令扩展

#more
more 文件名按回车,一行一行向下显示
按空格,一页一页向下显示
Ctrl + b:向上查看
Ctrl + f:向下查看
# less
less 文件名
Ctrl + b:向上查看
Ctrl + f:向下查看
按回车,一行一行向下显示
按空格,一页一页向下显示
输入/关键字,高亮显示,所有匹配到的内容
按n,查找下一个关键字
Shift + n 查找上一个关键字
# head
head 文件名默认显示一个文件的前10行内容
## 选项
-n:指定查看文件开头的前N行,n可以省略
[root@localhost <sub>]# head -n
文件开头的前3行
[root@shiying </sub>]# head -n 3 /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#

文件开头的前5行
[root@shiying <sub>]# head -n 5 /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10


# tail
tail 文件名默认显示一个文件的后10行内容
[root@shiying </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
##:指定查看文件末尾的后N行,n可以省略
文件末尾的后5行 n可以省略
[root@shiying <sub>]# tail -5 /etc/services
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
文件末尾的后5行
[root@shiying </sub>]# tail -n5 /etc/services
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


-f:follow,跟踪,动态跟踪一个文件的末尾
[root@shiying ~]# tail -f 456.txt
123456yyyy