0
点赞
收藏
分享

微信扫一扫

文件管理命令2

[TOC]

文件管理命令2

复制命令

cp:copy   # 默认 只能拷贝文件
cp [option...] source dest
cp [选项,可有可无] 源文件... 目标路径


## 选项
-t # 目标路径 源文件 (就是反过来,感觉没什么用)
-p # 保持文件属性 (时间,权限之类的)
-r # 递归复制,复制目录及目录下的所有文件 (主要就是能复制目录)
-a # 相当于-rp,既可以拷贝目录,又可以复制保持文件属性 (重要选项,这个好)
-i # 提示 (默认别名alias自带了)
-v # 显示 ,拷贝的过程 (操作过程)

## 用法
019:59:07 root@miaosen,10.0.0.100:<sub> # touch ms.txt
019:59:53 root@miaosen,10.0.0.100:</sub> # cp ms.txt /tmp
020:00:17 root@miaosen,10.0.0.100:<sub> # ls /tmp
ms.txt vmware-root_5965-1690180289

## 复制并改名
120:08:03 root@miaosen,10.0.0.100:/ # cp /root/ms.txt /opt/ka.txt
020:08:19 root@miaosen,10.0.0.100:/ # ls /opt/
ka.txt

# ka.txt是否存在
- (存在)
1.存在,并且ka.txt是个目录,则在/opt/ka.txt目录下不改名
2.存在,是个文件,则提示是否覆盖,输入Y覆盖,N则不覆盖
- 不存在
1,复制到/opt目录下改名ka.txt

## 提示
020:08:42 root@miaosen,10.0.0.100:/ # cp /root/ms.txt /opt/ka.txt
cp: overwrite ‘/opt/ka.txt’? y

## 报错
# 因为 /abc 是个目录 所以不能之间复制过去
020:17:57 root@miaosen,10.0.0.100:/ # cp /abc /opt
cp: omitting directory ‘/abc’

## 举例
# -r:递归复制,复制目录及目录下的所有文件 (主要就是能复制目录)
13020:18:34 root@miaosen,10.0.0.100:/ # cp /abc /opt -r
020:20:26 root@miaosen,10.0.0.100:/ # ls /opt
abc

# -p:保持文件属性 (时间,权限之类的)
020:21:48 root@miaosen,10.0.0.100:</sub> # ll
total 0
-rw-r--r--. 1 root root 0 Mar 23 19:59 ms.txt
020:21:50 root@miaosen,10.0.0.100:<sub> # cp -p ms.txt /opt/abc
020:22:24 root@miaosen,10.0.0.100:</sub> # ll /opt/abc
total 0
-rw-r--r--. 1 root root 0 Mar 23 19:59 ms.txt

# -a:相当于-rp,既可以拷贝目录,又可以复制保持文件属性 (重要选项,这个好)
020:26:36 root@miaosen,10.0.0.100:<sub> # cp -a /abc /root/
020:26:40 root@miaosen,10.0.0.100:</sub> # ll
total 0
drwxr-xr-x. 2 root root 6 Mar 23 20:17 abc
020:25:02 root@miaosen,10.0.0.100:<sub> # ll /
total 16
drwxr-xr-x. 2 root root 6 Mar 23 20:17 abc

# -i :提示
020:29:59 root@miaosen,10.0.0.100:</sub> # cp ms.txt /tmp/ddd
cp: overwrite ‘/tmp/ddd’?

## 避免提示有两种方法
1.使用转义符:让转义符后面的内容,做它自己 {在命令前面加上\}
12720:31:34 root@miaosen,10.0.0.100:<sub> # \cp ms.txt /tmp/ddd

2.使用命令的绝对路径
12720:33:16 root@miaosen,10.0.0.100:</sub> # /bin/cp ms.txt /tmp/ddd

## -v:显示拷贝过程
020:33:26 root@miaosen,10.0.0.100:~ # cp -v ms.txt /tmp/abc
‘ms.txt’ -> ‘/tmp/abc’


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

删除命令

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

## 语法
rm [option...] file...
rm 选项,可有可无,可多个 文件可多个
## 选项
-i: 提示 (默认别名alias自带了)
-r:递归删除 (主要是删除目录)
-f:force 强制删除 (不会有提示)
-d:只能删除空目录 (字面意思)

## 举例
# rm的用法
020:58:23 root@miaosen,10.0.0.100:<sub> # rm ms.txt
rm: remove regular empty file ‘ms.txt’? y
# -r 递归删除 (主要删除目录)
021:03:14 root@miaosen,10.0.0.100:</sub> # mkdir abc
021:04:00 root@miaosen,10.0.0.100:<sub> # rm -r abc
rm: remove directory ‘abc’? y
021:04:04 root@miaosen,10.0.0.100:</sub> # ll
total 0

# -f 强制删除(不会有提示)
021:04:19 root@miaosen,10.0.0.100:<sub> # touch 111
021:05:08 root@miaosen,10.0.0.100:</sub> # mkdir 222
021:05:16 root@miaosen,10.0.0.100:<sub> # rm -f *
rm: cannot remove ‘222’: Is a directory # 报错 # 因为222是目录 -f不会删除目录

# -d:只能删除空目录
021:06:24 root@miaosen,10.0.0.100:</sub> # rm -d 222
rm: remove directory ‘222’? y

## rm -r 删除目录
## rm 删除普通文件

普通文件查看命令

cat 只能查看文件内容

## 语法
cat [option...] [file]...
cat 选项,可多个 普通文件,可多个

## 选项
-n: number 打印行号,显示行号 (好用的)
-E:end, 查看文件每一行的结尾,以$符表示 (还不错)
-T: tab, 查看文件中每一行的内容是否含有制表符。以^I表示一个制表符 (一般般)
-A: 即显示制表符,又显示文件的结尾 (-T你没用了)

## 报错
021:20:08 root@miaosen,10.0.0.100:<sub> # cat ms
cat: ms: Is a directory # ms是目录

## 举例
# echo : 打印输出
## cat 用法 # echo内容重定向到一个文件中
121:28:55 root@miaosen,10.0.0.100:</sub> # echo "1" > a.txt
021:29:48 root@miaosen,10.0.0.100:<sub> # echo "2" > b.txt
021:29:53 root@miaosen,10.0.0.100:</sub> # echo "3" > c.txt
021:29:58 root@miaosen,10.0.0.100:<sub> # cat a.txt
1
021:30:14 root@miaosen,10.0.0.100:</sub> # cat b.txt c.txt
2
3

# -n 打印行号
021:33:09 root@miaosen,10.0.0.100:<sub> # cat -n a.txt
1
2 1asdsa
3 asdasdjha
4 as;djaskdj
5 asddudauds
6 aasda
7

# -E 查看文件每一行的结尾,以$符表示
021:33:30 root@miaosen,10.0.0.100:</sub> # cat -E a.txt
$
1asdsa $
asdasdjha$
as;djaskdj$
asddudauds$
aasda$
$

# -T :tab, 查看文件中每一行的内容是否含有制表符。以^I表示一个制表符 (一般般)
021:35:53 root@miaosen,10.0.0.100:<sub> # cat -T a.txt

1asdsa
asdasdjha
as;djaskdj
asddudauds
aasda
^I^I^I^I
4
324^I^I^I

# -A: 即显示制表符,又显示文件的结尾 (-T你没用了)
021:38:49 root@miaosen,10.0.0.100:</sub> # cat -A a.txt
$
1asdsa $
asdasdjha$
as;djaskdj$
asddudauds$
aasda$
^I^I^I^I$
4 $
324^I^I^I$
$
## 高难度用法(在文件不存在的情况下,创建文件并写入内容)
# 1.直接vi一个不存在的文件
021:42:06 root@miaosen,10.0.0.100:<sub> # ll
total 0
021:42:08 root@miaosen,10.0.0.100:</sub> # vi m.txt
021:42:37 root@miaosen,10.0.0.100:<sub> # ll
total 0
-rw-r--r--. 1 root root 0 Mar 23 21:42 m.txt
^[[B^[[B^[[B 021:42:50 root@miaosen,10.0.0.100:</sub> #
# 2. echo内容重定向到一个文件中
021:43:57 root@miaosen,10.0.0.100:<sub> # echo "miaosen" > s.txt
021:44:19 root@miaosen,10.0.0.100:</sub> # cat s.txt
miaosen

# 3.使用cat创建文件并写入内容
021:43:57 root@miaosen,10.0.0.100:<sub> # echo "miaosen" > s.txt
021:44:19 root@miaosen,10.0.0.100:</sub> # cat s.txt
miaosen
021:45:07 root@miaosen,10.0.0.100:<sub> # cat >> "baozou" <<EOF
> pake
> huomao
> EOF
021:47:10 root@miaosen,10.0.0.100:</sub> # cat baozou
pake
huomao
## EOF: End of 以...结尾,不是固定用法,规范用法
021:57:41 root@miaosen,10.0.0.100:<sub> # cat >> "l.txt" <<MS
> dudulu
> MS
022:07:45 root@miaosen,10.0.0.100:</sub> # cat l.txt
dudulu
## 注意:cat查看文件时,会将文件所有内容全部加载到内存

普通文件查看命令 扩展

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


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

输入/关键字,高亮显示,所有匹配到的内容
按n,查找下一个关键字
shift+n 查找上一个关键字
-----------------------------------------

# head
head 文件名
默认显示一个文件的前10行内容
## 选项
-n+number: 指定查看文件开头的前N行,N可以省略
022:26:38 root@miaosen,10.0.0.100:<sub> # head -3 /etc/services
# /etc/services:
#$Id: services,v 1.55 2013/04/14 ovasik Exp $


# tail
tail 文件名 默认显示一个文件的后10行内容
## 选项
-n+number:指定查看文件的后N行,n可以省略
-f:follow,跟踪,动态跟踪一个文件的未尾

# 用法
022:26:52 root@miaosen,10.0.0.100:</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
## -f:follow,跟踪,动态跟踪一个文件的未尾
22:44:42 root@miaosen,10.0.0.100:~ # tail -f /var/log/messages
Mar 23 22:10:59 miaosen NetworkManager[6413]: <info> [1648044659.4278] device (ens33): Activation: successful, device activated.
Mar 23 22:10:59 miaosen NetworkManager[6413]: <info> [1648044659.4295] manager: NetworkManager state is now CONNECTED_GLOBAL
Mar 23 22:10:59 miaosen nm-dispatcher: req:3 'up' [ens33]: new request (2 scripts)
Mar 23 22:10:59 miaosen nm-dispatcher: req:4 'connectivity-change': new request (2 scripts)
Mar 23 22:10:59 miaosen nm-dispatcher: req:2 'connectivity-change': start running ordered scripts...
Mar 23 22:10:59 miaosen nm-dispatcher: req:3 'up' [ens33]: start running ordered scripts...
Mar 23 22:10:59 miaosen nm-dispatcher: req:4 'connectivity-change': start running ordered scripts...
Mar 23 22:11:15 miaosen kernel: e1000: ens33 NIC Link is Down
Mar 23 22:11:19 miaosen kernel: e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Mar 23 22:11:19 miaosen NetworkManager[6413]: <info> [1648044679.3071] device (ens33): carrier: link connected
Mar 23 22:47:22 miaosen systemd: Started Session 13 of user root.
Mar 23 22:47:22 miaosen systemd-logind: New session 13 of user root.
ssMar 23 22:47:31 miaosen systemd: Started Session 14 of user root.
Mar 23 22:47:32 miaosen systemd-logind: New session 14 of user root.
Mar 23 22:47:39 miaosen systemd-logind: Removed session 13.
举报

相关推荐

0 条评论