第七章 文件与目录管理

​cd  pwd mkdir rmdir


pwd [-P]    显示当前的路径,而非使用连接(link)的路径

pwd 列出当前目录

mkdir [-mp] 目录名称    

-m:配置文件案的权限,直接设置,不需要看默认权限。

-p:帮助你直接将所需要的目录(包含上层目录)递归创建起来。也即是创建多层目录

eg:mkdir -m 711 test2

rmdir [-p]    目录名称    删除”空“目录      -p:连同上层”空的“目录一同删除

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



查看文件与目录:ls

ls [-aAdfFhilnrRst] 目录名称

ls [--color={never,auto,always}] 目录名称

ls [--full-time] 目录名称

参数说明:

-a:全部的文件,连同隐藏文件(开头为 . 的文件)一起列出来(常用)

-A:列出全部的文件(连同隐藏文件,但不包括 . 与 .. 这两个目录)

-d:仅列出目录本身,而不是列出目录内的文件数据(常用)

-f:直接列出结果,而不进行排序(ls默认会以文件名排序)

-F:根据文件、目录等信息给予附加数据结构,例如:

        *:代表可执行文件    /:代表目录    =:代表socket    |:代表FIFO文件

-h:将文件容量以人类较为易读的方式(例如GB,KB等)列出来

-i:列出inode号码、inode的意义后面会介绍

-l:列出长数据传,包含文件的属性与权限等级数据(常用)

-n:列出UID与GID,而非用户与用户组的名称(UID与GID会在账号管理提到)

-r:将排序结果反向输出,例如:原本文件名由小到大,方向则为由大到小

-R:连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来

-S:以文件容量大小排序,而不是用文件名排序

-t:依时间排序,而不是用文件名

--color=never:不要依据文件特性给予颜色显示

--color=always:显示颜色

--color=auto:让系统自行依据设置来判断是否给予颜色

--full-time:以完整时间模式(包含年、月、日、时、分)输出

--time={atime,ctime}:输出访问时间或改变权限属性时间(ctime)

                                        而非内容更改时间(modification time)



复制、删除与移动:cp,rm,mv

cp [-adfilprsu] 源文件 目标文件        默认的cp复制后的文件权限会根据命令操作者本身而变化

cp [options] source1 source2 source3 ... directory

参数

-a:相当于 -pdr的意思,至于pdr请参考后文(常用)    完全把文件的所有特性都复制过去,完全是一样的

-d:若源文件为连接文件的属性(link file),则复制连接文件属性而非文件本身        如果不加-d参数 则会复制源文件

-f:为强制(force)的意思,若目标文件已经存在且无法开启,则删除后再尝试一次

-i:若目标文件已经存在,在覆盖时会先询问操作的进行(常用)

-l:进行硬连接(hard link)的连接文件创建,而非复制文件本身      硬链接

-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用)   

-r:递归持续复制,用于目录的复制行为(常用)

-s:复制成为符号链接文件(symbolic link),即”快捷方式“文件     软连接

-u:若destination比source旧时,才更新destination



rm [-fir] 文件或目录

参数:

-f:就是force的意思,忽略不存在的文件,不会出现警告信息

-i:互动模式,在删除前会询问用户是否操作

-r:递归删除。删除该目录及目录下的所有


mv [-fiu] source destination                          还有一个很大的用途用来更改文件名!!!!!

mv [options] source1 source2 source3 .... directory

参数:

-f:强制,如果目标文件已经存在,不会询问而直接覆盖

-i:如果目标文件已经存在,就会询问是否覆盖

-u:如果目标文件已经存在,且source比较新,才会更新(同cp -u)



取得路径的文件名与目录名称

basename 文件名     返回一个文件名

dirname 目录名    返回一个目录名



文件内容查阅

cat:由第一行开始显示文件内容

tac:从最后一行开始显示,可以看出tac是cat的倒写形式

nl:显示的时候顺便输出行号

more:一页一页的显示文件内容

less:与more类似,但是比more更好的是,它可以往前翻页!

head:只看头几行

tail:只看结尾几行

od:以二进制方式读取文件内容


cat [-AbEnTv] 文件名

参数:

-A:相当于-vET的整合参数,可列出一些特殊字符,而不是空白而已

-b:列出行号,仅针对非空白行做行号显示,空白行不标行号

-E:将结尾的断行符$显示出来

-n:打印出行号,连同空白行也会有行号,与-b的参数不同

-T:将[Tab]按键以^I显示出来

-v:列出一些看不出来的特殊字符


more

空格:向下翻一页

Enter:向下滚动一行

/字符串:在显示的内容中,向下查询“字符串”这个关键字

:f:立刻显示出文件名以及目前显示的行数

q:推出

b或者[ctrl]-b:往回翻页,不过这操作只对文件有用,对管道无用


less

空格:向下翻页

[PageDown]:向下翻动一页

[PageUp]:向上翻动一页

/字符串:向下查询“字符串”的功能

?字符串:向上查询“字符串”的功能

n:重复前一个查询(与/和?有关)

N:反向重复前一个查询(同上)

q:退出


head

参数

-n:后面接数字,代表显示几行的意思        默认显示前10行,如果要显示前20行,head -n 20 文件名

head -n -100 文件名        除了最后100行内容不显示,其余都显示出来


tail

参数
-n:后面接数字表示显示几行,默认是显示10行

-f:表示持续监测后面所接的内容,要等到输出[ctrl-c]以后才结束检测

tail -n 20 文件名        列出最后20行

tail -n +100 文件名    显示100行以后的数据



修改文件时间或创建新文件:touch

modification time(mtime)文件内容被更改了会更新这个时间

status time(ctime) 权限与属性被更改了会更新这个时间

access time(atime)文件内容被读取时会更新这个时间

ls -l 显示的时间默认是mtime


touch [-acdmt] 文件

参数

-a:仅修改访问时间

-c:仅修改文件的时间,若该文件不存在则不创建新文件

-d:后面可以接欲修改的日期而不用目前的日期,也可以使用--date=“日期或时间”

-m:仅修改mtime

-t:后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDhhmm]



命令与文件的查询:


1. 脚本文件名查找

which [-a] command                   用来寻找可执行文件

-a:将所有由PATH目录中可以找到的命令均列出,而不只第一个被找到的


2. 文件名查找

whereis [-bmsu] 文件名或者目录

-b:只查找二进制文件

-m:只找说明文件manual下的文件

-s:只找source文件

-u:查找不在上述三个选项中的其他特殊文件


注:以后查找某些命令找不到时,使用文件查找命令试试


locate [-ir] keyword                            根据/var/lib/nlocate内的数据库记载,得出结果

-i:忽略大小写

-r:后面可接正则表达式的显示方式


注:locate更加简单,即使使用部分文件名也可以得到结果。但locate是在自己的数据库里面查找的,当你新建文件以后查找该文件是找不到的,必须手动更新以下数据库,使用updatedb命令。


文件的mtime,ctime,atime有什么区别:

文件的 Access time,atime 是在读取文件或者执行文件时更改的。
文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的。
文件的 Create time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。 


find [PATH] [option] [action]

option:有-atime,-ctime,-mtime。

-mtime n:n为数字,意义为在n天之前的“一天之内”被更改过的文件

-mtime +n:列出在n天之前(不含n天本身)被更改过的文件

-mtime -n:列出在n天之内(含n天本身)被更改过的文件

-newer file:file为另一个存在的文件,列出比file还要新的文件名



权限与命令间的关系(重要):

  • 用户能进入某目录成为“可工作目录”的基本权限是什么

可使用的命令:cd等切换工作目录的命令

目录所需权限:至少要由x的权限

额外需求:如果用户想用ls查阅文件名,还需要对此目录的r权限


  • 用户在某个目录内读取文件的基本权限是什么

可使用的命令:例如cat,more,less

目录所需权限:用户对这个目录至少有x权限

文件所需权限:用户对文件只要需要由r权限


  • 让用户可以修改一个文件的基本权限是什么

可使用的命令:vi nano

目录所需权限:所在目录要有x权限

文件所需权限:用户对该文件要有r,w权限


  • 让用户可以创建一个文件的基本权限是什么

目录所需权限:用户在该目录要具有w,x的权限,重点在w


  • 让用户进入某目录并执行该目录下某个命令的基本权限

目录所需权限:用户在该目录至少有x

文件所需权限:用户在该文件至少由x


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值