Linux系统命令与文件的搜寻

  • file
  • which
  • whereis
  • locate
  • find

file命令

file命令用于检测某个文件的文件类型或者说文件的基本数据;

[root@Sensor sock]# file /root/test.txt 
/root/test.txt: ASCII text
[root@Sensor sock]# file /bin/passwd
/bin/passwd: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=87e17c1d9b2e20d7e8aeab9115074375eec5e8e1, stripped
[root@Sensor sock]# file netsec.sock 
netsec.sock: socket
[root@Sensor 16384]# file 1509348
1509348: data

ASCII text表示文件为纯文本文档;
ELF是一种文件格式,在计算机科学中是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件;
socket表示文件为socket文件;
data表示文件为数据格式文件。程序运行过程中会读取一些特定格式的文件,这些文件为数据格式的文件。

which

which命令用于查找脚本文件或者可执行命令。which命令是根据PATH这个环境变量所规范的路径去查找文件。bash内建命令(比如history)是找不到的,因为which不会去读取bash文件中内容。

[root@Sensor ~]# which cd
/usr/bin/cd
[root@Sensor ~]# which history
/usr/bin/which: no history in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

whereis命令

在Linux系统上,find、whereis、locate都是非常好的文件查找命令,由于find命令会直接读取磁盘,速度慢所以并不常用,一般都先使用whereis或者是locate命令检查,如果真找不到了再使用find查找。
whereis命令只查找系统中某些指定目录下的文件;执行whereis -l查看whereis命令具体查找的目录有哪些。

[root@Sensor ~]# whereis -l
bin: /usr/bin
bin: /usr/sbin
bin: /usr/lib
bin: /usr/lib64
bin: /etc
bin: /usr/games
bin: /usr/local/bin
bin: /usr/local/sbin
bin: /usr/local/etc
bin: /usr/local/lib
bin: /usr/local/games
bin: /usr/include
bin: /usr/local
bin: /usr/libexec
bin: /usr/share
bin: /opt/containerd/bin
man: /usr/share/man/man5
man: /usr/share/man/man7
man: /usr/share/man/overrides
man: /usr/share/man/man0p
man: /usr/share/man/man1
man: /usr/share/man/man1p
man: /usr/share/man/man1x
man: /usr/share/man/man2
man: /usr/share/man/man2x
man: /usr/share/man/man3
man: /usr/share/man/man3p
man: /usr/share/man/man3x
man: /usr/share/man/man4
man: /usr/share/man/man4x
man: /usr/share/man/man5x
man: /usr/share/man/man6
man: /usr/share/man/man6x
man: /usr/share/man/man7x
man: /usr/share/man/man8
man: /usr/share/man/man8x
man: /usr/share/man/man9
man: /usr/share/man/man9x
man: /usr/share/man/mann
man: /usr/share/man/ru
man: /usr/share/man/fr
man: /usr/share/man/it
man: /usr/share/man/ja
man: /usr/share/man/pl
man: /usr/share/man/ko
man: /usr/share/man/sk
man: /usr/share/man/cs
man: /usr/share/man/da
man: /usr/share/man/de
man: /usr/share/man/hu
man: /usr/share/man/id
man: /usr/share/man/pt_BR
man: /usr/share/man/sv
man: /usr/share/man/tr
man: /usr/share/man/zh_CN
man: /usr/share/man/zh_TW
man: /usr/share/man/es
man: /usr/share/man/uk
man: /usr/share/man/nl
man: /usr/share/man/ca
man: /usr/share/man/pt
man: /usr/share/info
src: /usr/src/debug
src: /usr/src/kernels
[root@Sensor ~]# 

locate命令

locate在查找文件时特别快,因为locate寻找的数据是由已建立的数据库/var/lib/mlocate/里面的数据搜寻到的。数据库的建立默认每天执行一次。命令行直接输入updatedb命令手动更新数据库。
locate会罗列出路径中包含指定字符的所有文件,所以在查找是可能会罗列出非常多的文件。并没有whereis、which、find命令查的精确。

[root@Sensor ~]# locate docker-compose
/data/d-sensor/docker-compose.yml
/usr/local/bin/docker-compose
/var/lib/docker/overlay2/1fb72d9e98225879f992ed34e30fb1e8e228b99bd6ffc074e8e3e030ec26853f/diff/phpapp/symfony/lib/vendor/codeception/codeception/tests/docker-compose.yml
/var/lib/docker/overlay2/610b8624e63bda9a46efed176e7a326879118a1126f2fd2d9c7ddfa3a6fc9461/diff/opt/gitdir/git/docker-compose.yml
/var/lib/docker/overlay2/a76a33d94ff032ba5e46fbd4e5d9ad81b89be14e15b9ee8a1ea0eea7d3a89985/diff/opt/conpot/docker/docker-compose.yml
/var/lib/docker/overlay2/b41fc5f27ba707c7e4c345e130506dcc041bfad8da5430293321aa0bb890433b/diff/opt/conpot/docker/docker-compose.yml
/var/lib/docker/overlay2/e11918a0aa1640f837b3efb5a21480841b9d0c24d96bf02392912164d2b42084/diff/opt/gitdir/git/jeecg-boot/docker-compose-server.yml
/var/lib/docker/overlay2/fe1e853ab22fb8021f16c4f3235daa4efc83e3df2cf04511c8835f303e33b2e0/diff/phpapp/symfony/lib/vendor/codeception/codeception/tests/docker-compose.yml
[root@Sensor ~]# updatedb     #手动更新数据库
[root@Sensor ~]#

find命令

【命令格式】:find [path] [options] [action]
path指定在哪个目录下进行查找;
action指定需要查找的文件名;
选项与参数:
1 与时间有关的选项:-atime,-ctime,-mtime
2 与使用者或组名有关的参数:-uid,-gid,-user,-group,-nouser,-nogroup;
3 与文件权限及名称有关的参数:-name filename;-type filetype;-perm filemode

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值