Linux脚本文件的查找
脚本文件的查找:
- which(查找【执行文件】)
选项与参数:-a :将所有由PATH目录中可以找到的命令均列出,而不止第一个被找到的命令名称范例一:查找ifconfig这个命令的完整文件名。# which ifconfig
- 这个命令是根据【PATH】这个环境变量所规范的路径,去查找执行文件的文件名,所以,重点是找出执行文件而已,且which后面接的是完整文件名。若加上-a选项
则可以列出所有的可以找到的同名执行文件,而非显示第一个而已。
文件的查找
- whereis(由一些特定的目录中查找文件)
#whereis [-bmsu] 文件或目录名
选项与参数:
-l :可以列出whereis会去查询的几个主要目录;
-b :只找binary(二进制)格式的文件
-m :只找在说明文件manual路径下的文件;
-s :只找source源文件
-u :查找不在上述三个项目当中的其他特殊文件;
范例一:请找出ifconfig这个文件名
#whereis ifconfig - whereis只要是针对/bin/sbin下面的执行文件,以及/usr/share/man下面的man page文件,跟几个比较特定的目录来处理而已,所以速度当然快得多。
- locate/updatedb
#locate [-ir] keyword
选项与参数:
-i :忽略大小写的差异;
-c:不输出文件名,仅计算找到的文件数量;
-l :仅输出几行的意思,例如输出五行则是-l 5;
-S:输出locate所使用的数据库文件的相关信息,包括该数据库记录的文件/目录数量等;
-r: 后面可接正则表达式的显示方式;
范例一:找出系统中所有与passwd相关的文件名,且只列出5个
#locate -l 5 passwd - 这个locate的使用简单,直接在后面输入文件的部分名称后,就能够得到结果。举上面的例子来说,我输入locate passwd,那么在完整的文件名(包含路径名称)当中,只要有passwd在其中
就会被显示出来。这也是个很方便好用的命令,尤其是在你忘记某个文件的完整文件名时。
但是,这个东西还是有使用上的限制。locate寻找数据固然很快,这是因为locate寻找的数据是由已建立的数据库/var/lib/mlocate里面的数据所查到的,不用去硬盘当中读取数据,当然很快。
就是因为它是经数据库查找的,而数据库的建立默认是在每天执行一次,所以当你新建立起来的文件,却还在数据库更新之前查找该文件,那么locate会告诉你【找不到】,因为必须更新数据库,那么该如何更新数据库呢之际输入[updatedb]就可以
updatedb:根据/etc/updatedb.conf的设置去查找系统硬盘内的文件,并更新/var/lib/mlocate内的数据库文件;
locate:依据/var/lib/mlocate内的数据库记录,找出用户所输入关键词的文件名。
- find
#find [PATH] [option] [action]
选项与参数:
-mtime n :n为数字,意义为在n天之前的【一天之内】被修改过内容的文件;
-mtime +n :列出在n天之前(不含n天本身)被修改过内容的文件;
-mtime -n :列出在n天之内(含n天本身)被修改过的内容;
-mtime file:file为一个存在的文件,列出比file还要新的文件;
范例一:将过去系统上面24个小时内有修改过的内容(mtime)的文件列出。
#find / -mtime 0(那个0是重点。0代表目前的时间,所以,从现在开始到24小时前)
范例二:寻找/etc下面的文件,如果文件日期比/etc/passwd新就陈列出。
#find /etc -newer /etc/passwd
# -newer 用在辨别两个文件之间的新旧关系是很用的。
- 绝对路径:一定由根目录写起;相对路径:不由/泄气,而是由相对当前目录写起;
- 特殊目录有:.、..、-、~、~account需要注意;
- 与目录相关的的命令有:cd、mkdir、rmdir、pwd等重要命令;
- rmdir仅能删除空目录,要删除非空目录需使用【rm -r】命令;
- 用户能使用的命令是依据PATH变量所规定的目录去查找的;
- ls可以查看文件的属性,尤其-d、-a、-l等选项特别重要;
- 文件的复制、删除、移动可以分别使用:cp、rm、mv等命令来操作;
- 检查文件的内容(读文件)可使用的命令包括:cat、tac、nl、more、less、head、tail、od等;
- cat -n与nl均可显示行号,但默认的情况下,空白行会不会编号并不相同;
- touch的目的在修改文件的时间参数,但亦可用来建立空文件;
- 一个文件记录的时间参数有三种,分别是读取时间(access time,atime)、状态时间(status time,ctime)、修改时间(modification time,mtime),ls默认显示的是mtime;
- 除了传统的rwx权限之外,在ext2、ext3、ext4、xfs文件系统中,还可以使用chattr与lsattr设置及观察隐藏属性,常见的有只能新增数据的+a与完全不能修改文件的+i属性;
- 新建文件/目录时,新文件的默认权限使用umask来规范,默认目录的完全权限为drwxrwxrwx,文件则为-rw-rw-rw-;
- 文件具有SUID的特殊权限时,代表当用户执行此二进制程序时,在执行过程中用户会暂时具有程序拥有者的权限
- 目录具有SGID的特殊权限时,代表用户在这个目录下面新建的文件的用户组都会与该目录的组名相同
- 目录具有SBIT的特殊权限时,代表在该目录下用户建立的文件只有自己与root能够删除;
- 观察文件的类型可以使用file命令来观察;
- 查找命令的完整文件可用which或type,这两个命令都是通过PATH变量来查找文件名;
- 查找文件的完整文件名可以使用whereis找特定目录或locate到数据库去查找,而不实际查找文件系统;
- 利用find可以加入许多选项来直接查询文件系统,以获得自己想要知道的文件。

浙公网安备 33010602011771号