Linux文件搜索


文件搜索的常用命令有:which、whereis、find、locate。



which指令会在环境变量$PATH设置的目录里查找符合条件的文件

语法:
which 文件

示例:
$ which ls
/bin/ls  


该指令会在特定目录中查找符合条件的文件。这些文件应属于源文件、二进制文件,或是man文件。
语法:
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...] 文件

选项与参数:

  • -b  只查找二进制文件

  • -B<目录>  只在指定目录下查找二进制文件

  • -f  不显示文件名前的路径名称

  • -m  只查找man文件。

  • -M<目录>  只在指定目录下查找man文件

  • -s  只查找源代码文件

  • -S<目录>  只在指定目录下查找原始代码文件

  • -u  查找不包含指定类型的文件

示例:
$ whereis -b passwd
passwd: /usr/bin/passwd /etc/passwd  


locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找符合查找条件的文档或目录

语法:
locate [-d ][--help][--version] 文件

选项与参数:

  • -d或--database= 用来指定locate指令使用的数据库。locate指令默认数据库位于/var/lib/slocate目录里,文档名为slocate.db。

  • --help 查看帮助

  • --version 显示版本信息

示例:
$ locate longfile.txt
/home/jovyan/compress/dir/longfile.txt
/home/jovyan/compress/longfile.txt
/home/jovyan/dirandfile/longfile.txt
/home/jovyan/longfile.txt
/home/jovyan/text-grep/longfile.txt
/home/jovyan/text-sed/longfile.txt
/home/jovyan/text-vi/longfile.txt  


find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法:
find 查找目录 [-option] 查找内容

选项与参数:

  • -print:列出结果,使用find命令,默认执行

  • -mtime n:文件修改时间,对文件数据的最近一次修改是在 n*24 小时之前

  • -mmin n:对文件数据的最近一次修改是在 n 分钟之前

  • -ctime n:文件状修改时间,对文件状态的最近一次修改是在 n*24 小时之前。

  • -cmin n:件状态修改,对文件状态的最近一次修改是在 n 分钟之前。

  • -atime n:访问时间,对文件的最近一次访问是在 n*24 小时之前。

  • -amin n:最后访问时间,对文件的最近一次访问是在 n 分钟之前。

  • -mtime : 指定时间曾被改动过的文件,意思是文件內容被更改过

  • -ctime : 指定时间曾被更改过的文件,意思是文件权限被更改过

  • -atime : 指定时间曾被存取过的文件,意思是文件被读取过

  • -newer file:file为已存在的文件,意为列出比file时间更新的文件

  • -type:指定文件类型

  • -uid n:指定文件属主uid

  • -gid n:指定文件属组gid

  • -user:指定文件属主名

  • -group :指定文件属组名

  • -nouser: 查找系统中没有属主的文件

  • -nogroup:查找系统中没有属组的文件

  • -name:查找文件名相匹配的文件

  • -size:查找匹配大小的文件

  • -exec COMMAND:查找后使用额外命令处理查找结果

  • -perm +mode | –mode:+为囊括所有元素,-为包含任一元素

示例:

#将目前目录及其子目录下文件名后缀是txt的文件列出来
$ find . -name "*.txt"
./file.txt
./longfile.txt
./text-grep/file.txt
./text-grep/longfile.txt
............省略...........  

#将当前目录及其子目录下所有目录列出
$ find . -type d
.
./.ipython
./.ipython/extensions
./.ipython/profile_default
............省略...........  

#查找当前目录下20分钟内被访问过的文件或目录:
$ find . -amin -20
.
./.local/share/jupyter/nbsignatures.db
./user
./linux8.ipynb  

#查找当前目录下大于10k的普通文件,并列出其详细信息
$ find . -size +10k -type f
./.ipython/profile_default/history.sqlite
./privilege_1.png
./linux5_5.png
./linux5_2.png
............省略...........

新建文件夹search,将file.txt、file2.txt和longfile.txt复制其中,并新建文件夹adir、dir1和dir2和文件dir.txt,并复制longfile.txt分别到dir1和dir2中(20分)。在命令后添加"> 文件名"将内容输出到文件中。

任务一

使用which搜索"touch",输出结果到search_1.txt(20分)

任务二

搜索文件夹search中所有以"dir"开头的文件夹,输出结果到search_2.txt(30分)

任务三

搜索文件夹search中大于1k的普通文件类型文件,输出结果到search_3.txt(30分)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值