Linux learn(三)

6. Linux文件与目录管理(续上一篇)

查看文件类型

file

file 文件名

例如:

087fc5cd94c39e727be712f05874ff033f9.jpg

文件搜索

which($PATH查询执行档)

结构: which [-a] command

选项参数:

-a: 将所有PATH目录中可以找到的指令均列出,而不止第一个被找到的指令名称

操作演示:

3bc9cef0c39c7ea1d6581c4e63ceabf07c3.jpg

注意:这个指令是根据PATH环境变量所规范的路径去搜索“执行档”的档名,所以重点是找出执行档而已。

history是内建指令,但是which预设是找PATH内所规范的目录,所以可能出现执行history缺找不到history指令的情况,这个后续再说,由于我的测试机使用非root账户也能执行history这个指令,所以这里先贴个书上的图。

e84668d1fac7db5b20d65faf9658c990e1e.jpg

whereis(特定路径中查询文件名)

结构:whereis [-lbmsu] 文件或目录名

选项参数:

-l: 可以列出whereis会去查询的几个主要目录而已;

-b: 只找出binary格式的文件;

-m: 只找在说明文件manual路径下的文件;

-s: 只找source来源文件;

-u: 搜寻不在上诉三个项目当中的其他特殊文件.

注意:该指令只会在特定的目录中查询,如果想知道whereis到的查询了那些目录,可以使用whereis -l查看。

Locate/updatedb(文档名)

结构: locate[-ir] keeword

选项参数:

-i: 忽略大小写的差异;

-c: 不输出档名,经计算找到的文件数量;

-l: 仅输出几行的意思,例如输出5行,-l 5;

-S: 输出locate所使用的数据库文件的相关信息,包括该数据库记录的文件/目录数量等;

-r: 后面可接正规表示法的显示方式。

find(强大的查找指令)

结构: find [PATH] [option] [action]

选项参数:

1. 与事件有关的选项:共有-atime,-ctime,-mtime,以-mtime说明

-mtime n: n为数字,表示在n天之前的(一天之内)被更懂过内容的文件;

-mtime +n: 列出在n天之前(不含n天本身)被更动过内容的文件档名;

-mtime -n: 列出在n天之内(含n天本身)被更动过内容的文件档名;

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

图示[-4,4,+4]时间线:

9e8e4d3bcd40c97dbb2b3dc44aaed8c7fcd.jpg

2. 与使用者或组名有关的参数

-uid n: n为数字,这个数字是用户的账号ID,即UID,这个UID是记录在/etc/passwd里面与账号名称对应的数字;

-gid n: n为数字,这个数字是组名的ID,即GID,这个GID记录在/etc/group;

-user name: name为使用者账号名称,列如wangtao;

-group name: name为组名;

-nouser: 寻找文件的拥有者不存在/etc/passwd的人;

-nogroup: 寻找拥有群组不存在于/etc/group的文件,当自行安装软件时,很可能该软件的属性当中并没有文件拥有者,这是可能的,在这个时候,就可以用-nouser与-nogroup搜寻;

操作演示:

88be21922423278b002c4f911b247766437.jpg

3. 与文件权限及名称有关的参数:

-name filename: 搜索文件名为filename的文件;

-size [+-]SIZE: 搜寻比SIZE还要大(+)或小(-)的文件。SIZE规格有:c-->byte,k-->Kb,M-->Mb;

-type TYPE: 搜寻文件的类型为TYPE的,类型主要有:一般正规文件(f),装置文件(b,c),目录(d),连结档(l),socket(s),FIFO(p)等属性;

-perm mode: 搜索文件权限“刚好等于”mode的文件,这个莫得为类似chmod的属性值,例如-rwsr-xr-x的属性为4755;

-perm -mode: 搜寻文件权限“至少拥有”莫得权限的文件;

-perm /mode: 搜寻文件权限“包含任一mode权限”的文件。

操作演示:

317b0f88c9dab10d3e93ea1d9e8fba2aeb2.jpg

4. 额外可进行的动作:

-exec command: command为其他指令,-exec后面可以再接额外的指令来处理搜寻的结果;

-print: 将结果打印到屏幕上,这个动作是预设动作。

操作演示(查找/etc目录下50k-60k之间的文件,列出文件容量大于50k且文件所属人不是root的档名):

0475b3dfc96a8a7facaa16b71a20aa9415b.jpg

注意: -a 表示and的意思,-o表示or,! 表示反向选择(非)

示例中{},\;,-exec这些东西意义如下:

b622db3aa90788052fb4f84ac6dc5637977.jpg

{} 代表的是“由find找到的内容”,如上图所示,find的结果会被放置到{}位置中;

-exec 一直到 \; 是关键词,代表find额外动作的开始(-exec)到结束(\;),在这中间的就是find指令内的额外动作,当前示例是"ls -l {}";

因为;在bash环境下是由特殊意义的,因此利用反斜杠转义。

 

~~~over~~~

转载于:https://my.oschina.net/wtkid/blog/3040725

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值