位置: 编程技术 - 正文

linux文件搜索及其它基础命令介绍(3)(linux 搜索文件)

编辑:rootadmin

推荐整理分享linux文件搜索及其它基础命令介绍(3)(linux 搜索文件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux 搜索文件的命令,linux系统搜索文件内内容,linux 搜索文件,linux文件搜索命令有哪些,linux 文件内搜索,linux文件内容搜索,linux 搜索文件,linux文件内容搜索,内容如对您有帮助,希望把文章链接给更多的朋友!

1、linux中包含大量的文件,对于文件查找,linux提供了find命令。

find是一个非常有效的工具,它可以遍历目标目录甚至整个文件系统来查找某些文件或目录:

find [path...] [expression]

其中expression包括三种:options、tests和actions。多个表达式之间被操作符分隔,当操作符被省略时,表示使用了默认操作符-and。当表达式中不包含任何actions时,默认使用-print,也就是打印出搜索到的所有文件,用换行分隔。其实可以将三种表达式均视为选项,表示对搜索的某种限制(如-maxdepth表示搜索路径的最大深度)、或对找到的目标文件的某种测试(如-readable判断是否可读)、或对结果采取的某种动作(如-print)。

选项-name pattern搜索文件名:

此例中搜索目录/root下所有文件,找出匹配file&#;的文件名,同时由于没有指定action,所以使用默认的-print将结果打印出来。find命令中,搜索路径和某些文件名的表示可以使用shell通配符(见上一篇),但为了避免混淆,处于选项后的通配符需要被引号引起来。

选项-maxdepth n指定搜索路径的最大深度:

本例中指定最大深度为1,表示只搜索/root目录,而不进入任何它的子目录去搜索。和此选项相对应,-mindepth表示指定搜索路径的最小深度。

选项-user name按照文件属主来查找文件:

或者类似选项-uid n表示按文件属主的uid,-gid n表示按文件所属组的gid,-group name表示按文件所属组。

选项-mtime n 文件上次内容被修改距离现在n*小时:

本例中使用了命令ls的选项-t对文件的时间进行排序,最近被修改的文件在前。选项-mtime n中n可以表示成:

+n 表示大于n-n 表示小于nn 表示等于n

还有其他时间(如atime,ctime)的比较,用法相同。

选项-newer file表示搜索到的文件比指定的file要‘新'(上次内容被修改离现在时间更短):

选项-path pattern文件名匹配pattern(通配符):

注意pattern匹配时不会对/和.进行特殊处理。

通常-path会配合选项-prune使用,表示对某目录的排除:

这里的-o表示或者,它和之前所说的-and都是操作符。表示表达式之间的逻辑关系。本例中可以理解为:如果目录匹配./tmp则执行-prune跳过该目录,否则匹配-name指定的文件并执行-print。除这两个操作符外,操作符!或-not表示逻辑非,操作符(...)和数学运算中的括号类似,表示提高优先级:

注意这里的(...)操作符需要被转义(为避免被shell解释为其他含义),在符号前加上反斜线''。(关于shell中的转义或引用我们会在讲bash编程时详述)

选项-type x表示搜索类型为x的文件,其中x的可能值包括b、c、d、p、f、l、s。它们和命令ls显示的文件类型一致(见基础命令介绍一),f代表普通文件。

选项-perm mode表示搜索特定权限的文件:

或表示成:

选项-size n表示搜索文件大小

此例中+c表示当前目录下大于 bytes的文件,n和前面表示时间的方式类似(+n,-n,n),n后面的字符还包括:

b 单位为 bytes的块(n后面没有后缀时的默认单位)k bytesM bytesG bytes选项-print0类似-print输出文件名,但不用任何字符分隔它们。当文件名中包含特殊字符时使用。可以配合带选项-0的命令xargs一起使用(后述)。

选项-exec command ;表示要执行的命令-exec后可以跟任意shell命令来对搜索到的文件做进一步的处理,在command和分号之间都被视为command的参数,其中用{}代表被搜索到的文件。分号需要被转义。如对搜索到的文件执行命令ls -l:

-exec选项后的命令是在启动find所在的目录内执行的,并且对于每个搜索到的文件,该命令都执行一次,而不是把所有文件列在命令后面只执行一次。举例说明下其中的区别:

当使用格式-exec command {} +时表示每个文件都被追加到命令后面,这样,命令就只被执行一次了:

但有时会出现问题:

因为这里文件被追加于目录abcd/的后面,导致报错。同时,使用格式-exec command {} +还可能会造成被追加的文件数过多,超出了操作系统对命令行长度的限制。使用-exec可能会有安全漏洞,通常使用管道和另一个命令xargs来代替-exec执行命令。

2、xargs 从标准输入中获得命令的参数并执行xargs从标准输入中获得由空格分隔的项目,并执行命令(默认为/bin/echo)选项-0将忽略项目的分隔符,配合find的选项-print0,处理带特殊符号的文件。

当不用时:

选项-I string为输入项目指定替代字符串:

这里的意思是说使用-I后面的字符串去代替输入项目,这样就可以把它们作为整体放到命令的任意位置来执行了。也避免了-exec command {} +的错误。

选项-d指定输入项目的分隔符:

选项-P指定最大进程数,默认进程数为1,多个进程并发执行。

3、date 打印或设置系统时间

date [OPTION]... [+FORMAT]当没有任何参数时表示显示当前时间:

选项-d string按描述字符串显示时间(例子中字符串表示距离--零点的秒数):

或者:

linux文件搜索及其它基础命令介绍(3)(linux 搜索文件)

-d后面的字符串还可以是:

表示昨天

又如明年表示为:

选项-s设置系统时间:

由于linux系统启动时将读取CMOS来获得时间,系统会每隔一段时间将系统时间写入CMOS,为避免更改时间后系统的立即重启造成时间没有被写入CMOS,通常设置完时间后会使用命令clock -w将系统时间写入到CMOS中。date命令中由FORMAT来控制输出格式,加号+在格式之前表示格式开始:

本例中格式被双引号引起来以避免被shell误解,其中:

%Y 表示年%m 表示月%d 表示天%H 表示小时%M 表示分钟%S 表示秒还可以指定很多其他格式如只输出当前时间:

如输出距离--零点到现在时间的秒数:

如输出今天星期几:

其他格式请自行man

4、gzip 压缩或解压文件

gzip [OPTION]... [FILE]...

当命令后直接跟文件时,表示压缩该文件:

压缩后的文件以.gz结尾,gzip是不保留源文件的

选项-d表示解压缩

选项-r可以递归地进入目录并压缩里面的文件选项-n指定压缩级别,n为从1-9的数字。1为最快压缩,但压缩比最小;9的压缩速度最慢,但压缩比最大。默认时n为6。

[root@centos7 temp]# gzip -r9 ./tmp

当gzip后没有文件或文件为-时,将从标准输入读取并压缩:

注意例子中gzip的输出被重定向到文件hello.gz中,如果对此文件进行解压,将会生成文件hello。如果被重定向的文件后缀不是.gz,文件名在被改成.gz后缀之前将不能被解压。

5、zcat 将压缩的文件内容输出到标准输出

zcat读取被gzip压缩的文件,只需文件格式正确,不需要文件名具有.gz的后缀。

6、bzip2 压缩解压文件

bzip2 [OPTION]... [FILE]...命令bzip2和gzip类似都是压缩命令,只是使用的压缩算法不一样,通常bzip2的压缩比较高。本命令默认同样不保留源文件,默认文件名后缀为.bz2:

选项-k可使源文件保留:

选项-d表示解压(若存在源文件则报错):

选项-f表示强制覆盖源文件:

选项-n和gzip用法一致,表示压缩比。

7、tar 打包压缩文件

tar [OPTION...] [FILE]...命令gzip和bzip2均不支持压缩目录(虽然gzip可以用选项-r到目录内去压缩,但仍无法压缩目录),用tar命令可以将目录归档,然后利用压缩命令进行压缩:

例子中选项-c表示创建打包文件,-f tmp.tar表示指定打包文件名为tmp.tar,后面跟被打包目录名tmp/。

选项-t列出归档内容选项-v详细地列出处理的文件

选项-u更新归档文件(update)。

选项-x对归档文件进行提取操作。(解包)

选项-O解压文件至标准输出

选项-p保留文件权限(用于解包时)。

选项-j、-J、-z 用于压缩。其中-j使用命令bzip2,-J使用命令xz,-z使用命令gzip分别将归档文件进行压缩解压处理(命令tar后的选项可以省略-):

本例中分别使用三种压缩格式进行压缩,可以看到使用命令bzip2的压缩比最高,命令gzip的压缩比最低。在执行压缩文件时,压缩时间也是我们考量的一个重要因素。默认时,使用gzip最快,xz最慢。对于这三种格式的压缩文件进行解压,只需将选项中-c换成-x即可。

选项-X FILE 排除匹配文件FILE中所列模式的文件:

注意文件FILE中支持通配符匹配:

选项-C DIR改变至目录DIR(用于解包时):

只解压指定文件:

注意这里解压时,指定文件不能在选项-C之前

如不想解压压缩包,但想查看压缩包中某个文件的内容时,可以使用如下技巧:

本文讲述了linux中关于文件搜索和归档压缩等相关的命令及部分选项用法,都是在系统管理过程中经常要使用的,需熟练使用。

标签: linux 搜索文件

本文链接地址:https://www.jiuchutong.com/biancheng/371515.html 转载请保留说明!

上一篇:linux文本过滤grep基础命令介绍(5)(linux怎样过滤一个关键字)

下一篇:linux定时任务基础命令介绍(14)(linux定时任务怎么立刻生效)

  • 关联企业间借款利息扣除规定
  • 非正常损失的货物,增值税做什么科目
  • 发票专用章换了需要登记吗
  • 自产自销农产品发票如何开具
  • 已认证的进项税发票要退回,怎么操作
  • 预计负债账务处理 固定资产
  • 出口退税转为免税
  • 上月工资多计提了怎么调整
  • 项目部管理人员及作业人员的
  • 接受实物投资的增值税会计核算方法
  • 定额发票上的金额是什么
  • 增值税已交税金借方有余额
  • 债转股需不需要交税
  • 专用发票和普通发票的区别在哪里
  • 海外代付属于外债吗
  • 当月未抵扣进项税在进项税额明细表怎么填
  • Mac系统怎么设置ftp
  • 贷款逾期了利息和罚息可以不还吗
  • 购买一台电脑会计分录
  • win10右键显示设置打不开怎么办
  • Thinkphp5+PHPExcel实现批量上传表格数据功能
  • 进货折扣是怎么计算
  • schupd.exe - schupd是什么进程 有什么用
  • 跨年销货退回账务处理
  • 固定资产更新改造支出计入什么科目
  • 安保服务差额征税如何开票
  • 汇算清缴中企业基础信息表
  • 应缴纳增值税计什么科目
  • 文竹发黄怎么挽救?
  • 银行罚息计入什么会计科目
  • more命令 查找
  • 个体工商户和个人独资企业的区别
  • 增值税发票开票系统数据与实际报税数不一致的原因?
  • java基础变量字节
  • 保教费收入要交企业所得税吗
  • 资产负债表上应付账款根据什么填制
  • 出资比例不等于100%
  • 接受银行承兑汇票的流程
  • 个人所得税工资薪金包括哪些内容
  • 销售退回怎么写分录
  • 哪些进项税额不能抵扣
  • 股权转让给个人和公司的区别
  • 企业进项税率是多少
  • 起征点和免征额都是税收优惠形式
  • 开具发票要注意方面是有哪些?
  • 流动资产周转天数高说明什么
  • 罚款支出算费用吗
  • 合伙企业一般纳税人六税两费
  • 物业管理公司收入确认
  • 销售商品的运费的税费计入进项税额
  • 还银行贷款如何计算利息
  • 所得税纳税调增会计需要做业务处理吗
  • 付给销售人员的佣金会计分录
  • 产品质量的保证需要哪几方面的支持
  • 小规模纳税企业在应交增值税明细科目
  • 报销单可以当记账凭证吗
  • 哪些费用是不可抵扣的
  • 分期收款销售什么意思
  • 农民专业合作社法
  • 现金账务处理原则规定
  • 复合索引顺序
  • solaris命令
  • vi修改文件
  • VirtualBox虚拟机中文免费
  • vim wqa
  • 系统用户在哪里
  • win7旗舰版玩dnf总是未响应
  • cocos jsc
  • javascript要怎么学
  • 欢迎使用来电提醒业务是什么意思
  • 基于javascript的毕业设计选题
  • unity3d效果图
  • python计算π值
  • jquery原理和实现步骤
  • 辽宁省社保系统操作
  • 湖南地税电话号码
  • 税务总局在贯彻落实意见任务分工中
  • 什么是私人帐户
  • 年终奖怎么报个税
  • 明星征税多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设