linux操作命令好多,为易于学习和查阅将分批进行分享,本期分享5个文件搜索操作的命令。
1、find文件或目录搜索
2、locate在文件资料库中查找文件命令
3、which搜索命令所在的目录及别称信息
4、whereis搜索命令所在的目录及帮助文档路径
5、grep在文件中搜索字符串匹配的行前输出
1、find在硬碟中搜索文件或目录
格式:find[参数][搜索范围][匹配条件][处理动作]
参数:
-name文件名:按指定文件名查找
-iname:不分辨字母大小写
-perm:按执行权限来查找
-user用户名:按文件属主来查找
-group组名:按组来查找
-mtime–n/+n:按文件修改时间来查找,-n指n天以内,+n指n天曾经
-atime–n/+n:按文件访问时间来查找,-n指n天以内,+n指n天曾经
-ctime–n/+n:按文件创建时间来查找,-n指n天以内,+n指n天曾经
-nogroup:查找无有效属组的文件,即在/etc/groups中不存在
-nouser:查找无有效属主的文件,即在/etc/passwd中不存在
-newerf1!f2:查找修改时间比f1新但比f2旧的文件
-typeb/d/c/p/l/f:按文件类型查找是块设备、目录、字符设备、管道、符号链接、普通文件
-size[n]:依照文件大小查找,查宽度为n块或字节的文件
-depth:按在步入子目录前先进行查完本目录,如:find/etc–depth-print
-fstypef1!f2:查找修改时间比f1新但比f2旧的文件
-mount:查找文件是否跨越文件系统mount点
-follow:查找遇见符号链接文件,则跟踪链接所指的文件。
-cpio:对匹配文件使用gcpio名linux版qq,将她们备份到磁带设备中
-prune:忽视某个目录
处理动作:
-pint:将查找到的文件输出到标准输出
-ls:输出文件的详尽信息
-delete:删掉查找到的文件
-fls/path/to/somefile:把查找到的文件的长格式信息保存到指定文件中
-okcommand{};:对查到的文件执行command表示的命令,每位操作都由用户确认
-execcommand{};:对查找到的每位文件执行由COMMAND表示的命令;
如:查找文件修改时间,并显示下来:find./-mtime–1–ls
2、locate在文件资料库中查找文件命令
格式:locate[文件名]
参数:
-b,--basename--仅匹配路径名的基本名称
-c,--count--只输出找到的数目
-d,--databaseDBPATH--使用DBPATH指定的数据库,而不是默认数据库/var/lib/mlocate/mlocate.db
-e,--existing--仅复印当前现有文件的条目
-1--假如是1.则启动安全模式。在安全模式下,使用者不会见到权限难以见到的档案。这会使速率减缓,由于locate必须至实际的档案系统中取得档案的权限资料。
-0,--null--在输出上带有NUL的单独条目
-S,--statistics--不搜索条目,复印有关每位数据库的统计信息
-q--安静模式,不会显示任何错误讯息。
-P,--nofollow,-H--检测文件存在时不要遵守尾随的符号链接
-l,--limit,-nLIMIT--将输出(或计数)限制为LIMIT个条目
-n--至多显示n个输出。
-m,--mmap--被忽视,为了向后兼容
-r,--regexpREGEXP--使用基本正则表达式
--regex--使用扩充正则表达式
-q,--quiet--安静模式,不会显示任何错误讯息
-s,--stdio--被忽视,为了向后兼容
-o--指定资料库存的名称。
-h,--help--显示帮助
-i,--ignore-case--忽视大小写
-V,--version--显示版本信息
如:搜索etc目录下所有以sh开通的文件:locate/etc/sh
注:locate的搜索速率比find快,由于locate是在/var/lib/slocate/slocate.db数据库中查找,查找并不是实时的。数据库每晚手动更新,自动更新命令为:updatedb。
3、which查看可执行文件的位置
格式:which[参数][程序名称]
常用参数:
-n指定文件名宽度,指定的宽度必须小于或等于所有文件中最长的文件名。
-p与-n参数相同linux系统中怎么搜索文件命令大全,但此处的包括了文件的路径。
-w指定输出时栏位的长度。
-V显示版本信息。
如:whichls运行结果:aliasls='ls--color=auto'/bin/ls
4、whereis搜索命令所在的目录及帮助文档路径
格式:whereis[参数][目录或文件名]
参数:
-b只查找二补码文件
-B只在设置的目录下查找二补码文件
-f不显示文件名前的路径名称
-m只查找说明文件
-M只在设置的目录下查找说明文件
-s只查找原始代码文件
-S只在设置的目录下查找原始代码文件
-u查找包含指定类型的文件
如:whereisbash执行结果:bash:/bin/bash/usr/share/man/man1/bash.1.gz
5、grep在文件中查找匹配的字符串
格式:grep[参数][文件或目录]
参数:
-a或--text:不要忽视二补码的数据。
-A或--after-context=:不仅显示符合范本款式的那一列之外,并显示该行以后的内容。
-b或--byte-offset:在显示符合款式的那一行之前,标识出该行第一个字符的编号。
-B或--before-context=:不仅显示符合款式的那一行之外,并显示该行之前的内容。
-c或--count:估算符合款式的列数。
-C或--context=或-:不仅显示符合款式的那一行之外,并显示该行之前后的内容。
-d或--directories=:当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e或--regexp=:指定字符串做为查找文件内容的款式。
-E或--extended-regexp:将款式为延展的正则表达式来使用。
-f或--file=:指定规则文件,其内容富含一个或多个规则款式,让grep查找符合规则条件的文件内容,格式为每行一个规则款式。
-F或--fixed-regexp:将款式视为固定字符串的列表。
-G或--basic-regexp:将款式视为普通的表示法来使用。
-h或--no-filename:在显示符合款式的那一行之前linux 常用命令,不标识该行所属的文件名称。
-H或--with-filename:在显示符合款式的那一行之前,表示该行所属的文件名称。
-i或--ignore-case:忽视字符大小写的差异。
-l或--file-with-matches:列举文件内容符合指定的款式的文件名称。
-L或--files-without-match:列举文件内容不符合指定的款式的文件名称。
-n或--line-number:在显示符合款式的那一行之前,标识出该行的列数编号。
-o或--only-matching:只显示匹配PATTERN部份。
-q或--quiet或--silent:不显示任何信息。
-r或--recursive:此参数的疗效和指定”-drecurse”参数相同。
-s或--no-messages:不显示错误信息。
-v或--invert-match:显示不包含匹配文本的所有行。
-V或--version:显示版本信息。
-w或--word-regexp:只显示全字符合的列。
-x--line-regexp:只显示全列符合的列。
-y:此参数的疗效和指定”-i”参数相同。
如:greptest*sh在当前目录中,查找后缀有sh字样的文件中包含test字符串的文件,并输出结果。
如:grep–rupdate/etc/test查找指定目录/etc/test及其子目录下所有文件中包含字符串update的文件,并输出结果。
本次分享结束linux系统中怎么搜索文件命令大全,如有遗漏欢迎补充见谅,感谢查阅!!