文件管理命令
Posted 酱油拌饭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件管理命令相关的知识,希望对你有一定的参考价值。
文件管理
[toc]
复制命令
#复制命令:
cp :copy
cp 选项 文件 路径
默认只能复制文件
#选项:
-t:是将路径和文件反过来输入 #例:cp -t /abc 源文件的位置 正常是:cp 原文件的位置 /abc
-p保持文件属性复制,文件的属性就是文件权限,文件拥有者,文件创建时间一类的,不加-p会更改创建时间 注#以目前我学到的得出的结论
-r:递归复制,递归就是可以连带整体的目录一起复制,包括目录里的内容
-a:-a相当于-rp的组合选项,既可以复制目录又可以保持文件的属性
-i:提示,-i我们系统默认cp命令就是cp -i 也就是系统别名里已经设置好的
-v:-v是显示复制的过程
#复制并改名
与mv剪切一样,如果复制的目标文件不存在将会改名,这个文件分存在与不存在的情况,存在的情况有两种一种是:存在,而且是个目录,第二种是:存在,但是是个文件,不存在就是不存在
第一个存在情况:你复制到的位置是个目录,那他就会把文件放在目录里面切不改名
第二个存在情况:你复制到的位置是个文件,那他就会提示你是否覆盖该文件
不存在的情况:就是复制过去并改成你输入的文件名
曾老师的举例: (参考)
ooo是否存在
- 存在
1)存在,并且ooo是个目录:将oldboy.txt放到/tmp/ooo目录下,不改名
2)存在,并且ooo是个普通文件:则提示是否要覆盖,输入y则覆盖,输入n则不覆盖
- 不存在:复制到/tmp下,并且改名为ooo
#提示 即使没有ooo这个文件也会提示 因为我们 cp 这条命令本身就是 cp -i
[root@localhost ~]# cp /abc/oldboy.txt /tmp/ooo
cp: overwrite ‘/tmp/ooo’?
-----------------------------------------------
# 报错 因为我们 cp 这条命令默认只能复制普通文件,不能复制目录,需要复制目录可以加上选项 或者在cp前面加上\\ \\cp 选项 文件 路径
[root@localhost ~]# cp /abc /tmp/
cp: omitting directory ‘/abc’
#命令加选项的使用
----------------------------------------------
# -p保持文件属性
[root@localhost ~]# cp -p /abc/oldboy.txt .
-p保持文件属性复制,文件的属性就是文件权限,文件拥有者,文件创建时间一类的,不加-p会更改创建时间 注#以目前我学到的得出的结论
------------------------------------------------
# -r递归拷贝 复制tmp目录到root目录,正常cp是没法复制目录的,加上-r这个选项就可以
[root@localhost ~]# cp -r /tmp /root/
-r:递归复制,递归就是可以连带整体的目录一起复制,包括目录里的内容
---------------------------------------------------------------------------
# -a拷贝目录,保持目录属性,相当于选项-r和-p的组合,递归并保持文件的文件属性
[root@localhost ~]# cp -a /abc /root/
-p保持文件属性复制,文件的属性就是文件权限,文件拥有者,文件创建时间一类的,不加-p会更改创建时间
-r:递归复制,递归就是可以连带整体的目录一起复制,包括目录里的内容
---------------------------------------------------------
-v:这个没什么说的,就是把复制的过程展示出来
# -i提示 提示这个功能 cp 自带的
[root@localhost ~]# cp -i /abc/oldboy.txt /tmp/zhujiao
cp: overwrite ‘/tmp/zhujiao’?
##避免提示的方法
1.转义符:\\:的使用,转义符就是让后面的内容,干自己的工作
比如 \\cp 这个就是让 cp 做他自己,他该干什么就干什么,我 cp 就是复制东西的,那你叫我复制什么我就复制什么
2.命令的绝对路径
首先找到 cp 这个命令的绝对路径,我们可以用which这个命令来查
例:[root@ltl /oldboy/0602]# which cp
alias cp=cp -i
/usr/bin/cp这是我们 cp 这个命令的绝对路径,我们可以简化,用 /bin/cp的方式
例:[root@localhost ~]# /bin/cp -a /etc /tmp/
#这种方式也不会提示
------------------------------------------
删除命令
#删除命令
rm:remove
默认只能删除普通文件
#语法
rm 选项 文件
#选项
-i 提示 也就是提示是否删除,可输入y或n来表示yes 是的 n表示no -i也是rm命令自带的功能,系统设置好的别名
-r 递归 也就是递归删除 可以删除目录和目录里的内容,会提示因为rm自带-i选项
-f 强制 强制删除 不论目录还是文件
-d 可以删除空目录,没啥用
## 报错 这是个目录不是文件,所以无法删除 Is a directory = 是个目录
[root@localhost ~]# rm /root/abc/
rm: cannot remove ‘/root/abc/’: Is a directory
#选项使用
-i提示
## 曾老师的举例
[root@localhost ~]# rm /tmp/ooo
rm: remove regular empty file ‘/tmp/ooo’? 提示是否删除
-r递归删除
# -r递归删除 曾老师举例 会提示是否删除因为 rm 自带-i选项
[root@localhost ~]# 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强制删除
#-f强制删除 不提示,不分目录与文件,强制删除
普通文件查看命令
cat 只能查看文件内容
#语法
cat 选项 普通文件
##选项
-n:number 显示行号 方便查看行数
-E:严格区分大小写:查看每一行的末尾,末尾会有一个$符号显示
-T:严格区分大小写:-T这个T是Tab键 也就是我们说的制表符 -T就是查看制表符的,以^I来表示一个制表符
-A:即显示制表符,又显示文件的结尾$
## 报错 tmp是一个目录 = /tmp: Is a directory
[root@localhost ~]# cat /tmp
cat: /tmp: Is a directory
#选项使用
# -n打印行号 曾老师的示例
-n:标注每一行的行数 方便观看
[root@localhost ~]# 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 rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
20 rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
21 nfsnobody:x:65534:65534:Anonymous NFS User:
/var/lib/nfs:/sbin/nologin
22 ntp:x:38:38::/etc/ntp:/sbin/nologin
# -E 查看文件结尾 文件的结尾会用一个$符来提示,并不是以$结尾而是以$前面哪一位为结尾
[root@localhost ~]# cat -E 1.txt
1 $
2 $
3 $
4 7 $
5 2 0$
6 9$
7$
# -T 查看文件中的制表符 制表符= ^I 什么是制表符,我们写文档时按Tab键会出现类似空格的功能,一个制表符正常代表4到8个(可修改) 空格,但是又不完全是空格,所以叫制表符而不是叫空格,那一个制表符就用一个 ^I 来提示 这就是-T的功能
[root@localhost ~]# cat -T 1.txt
1^I^I
2
^I3
4^I^I7
5^I2^I^I^I0
6 9
7
# -A 既查看制表符,又查看文件结尾,等同于-E -T 组合起来用
[root@localhost ~]# cat -A 1.txt
1^I^I $
2 $
^I3 $
4^I^I7 $
5^I2^I^I^I0$
6 9$
7$
#在文件不存在的情况下,创建文件并写入内容
#1.直接vi 一个不存在的文件
[root@localhost ~]# vi 4.txt
#这是直接在当前目录创建并编辑一个叫4.txt的文件,也可以指定目录来创建并编辑,前提是你的目录要存在
# 2.echo内容重定向到一个文件中
[root@localhost ~]# echo 5 > 5.txt
[root@localhost ~]# cat 5.txt
5
#和vi差不多一个是在内部一个在外部,但是echo是没办法换行输入的
# 3.使用cat创建文件并写入内容,曾老师没说细说,目前只知道内容是由<<这个符号交给 >>这个符号然后这个符号>> 写到6.txt里面 EOF是结尾输入的 不想写了就输入EOF回车 就可以退出,不是必须用EOF 可以自定义
[root@localhost ~]# cat >> 6.txt <<EOF
> 6
> EOF
#自定义
[root@localhost ~]# cat >> 8.txt << huanglong
> 1
> 2
> 3
> 45
> 6
> EOF
> huanglong
普通文件查看命令 扩展
1.
#more
#语法
more 文件名
使用方法:
按回车,一行一行向下展示
按空格,一页一页向下展示
ctrl + b 向上查看
ctrl + f 向下查看
2.
#less
#语法
less 文件名
Ctrl + b:向上查看
Ctrl + f:向下查看
按回车,一行一行向下显示
按空格,一页一页向下显示
可以搜索你想要的内容,并且标为高亮
按 n 查找下一个
Shift + n 查找上一个
3.
#head
#语法
head 文件名
默认显示一个文件的前十行内容
#选项
-n n可以省略,直接输入数字 例 head -5 就是看五行
#曾老师的示例
[root@localhost ~]# head -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
4.
# tail
tail 文件名
默认显示一个文件的后10行内容
[root@localhost ~]# 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行,n可以省略, 直接输入数字 例 tail -3 文件名
#曾老师的示例
[root@localhost ~]# tail -3 /etc/services
iqobject 48619/tcp # iqobject
iqobject 48619/udp # iqobject
matahari 49000/tcp # Matahari Broker
-f:实时监控一个文件的末尾内容,双终端的情况下,监控的一方可以看到,输入的一方,输入的内容
以上是关于文件管理命令的主要内容,如果未能解决你的问题,请参考以下文章