`

linux下文件的批量查找与复制命令、批量解压、批量删除功能

 
阅读更多
find  .  -type f -name "weapon.log*" | xargs -i  rm -fr "{}" ;
find . -name "stat_*_2012_05_26_log.tgz" -exec cp {} /home/adstat/apache_log/stat/ \;

 上述命令①代表在当前文件夹下递归找到符合weapon.log开头的文件并删除,如果要指定其它目录,可以把.替换成绝对路径即可。

   ②代表在当前文件夹下查找符合正则表达式stat_*_2012_05_26_log.tgz 的文件并分别复制到/home/adstat/apache_log/stat/目录下。 

  那么批量解压文件是否这样呢:

 

find . -name "stat_*_2012_05_26_log.tgz"|xargs tar -zxvf

  其实是不可以的,执行结果如下:

 

 

tar: ./stat_64_138_2012_05_26_log.tgz:归档中找不到
tar: ./stat_10_10_75_80_2012_05_26_log.tgz:归档中找不到
tar: ./stat_64_139_2012_05_26_log.tgz:归档中找不到
tar: ./stat_74_195_2012_05_26_log.tgz:归档中找不到

  为什么tar不支持这种通配符语法呢?

 

通配符是shell解决的问题
tar -xvf *.tar
实际上执行tar时,tar接收到的是
tar -xvf a.tar b.tar c.tar ...
如果当前目录跟本没有tar的东西,那么tar就收到'*.tar'这个参数
与win不同,linux所有字符都可以作文件名,也即目录中不存在着 *.tar这个文件
为了防止 *.tar被shell解释为a.tar b.tar c.tar...
可以给它加个单引号

用tar解开一个Archive时,语法是
tar -xvf <tarfile.tar> <archived_file>
<tarfile.tar> 是选项f所要求的,只能是一个文件,比如myfiles.tar。
<archived_file> 是myfiles.tar所包含的归了档的文件中的一个或者多个成员文件。如果是多个,可以用通配符。
先别跟我急,我知道,这些你是清楚的。但是,你的问题是,用了
tar -xvf *.tar
如楼上所说,tar接收到的是
tar -xvf a.tar b.tar c.tar ...
tar把你的意图理解为,在a.tar里解出b.tar c.tar .

可以使用的方法如下:
方法:
第一:
for tar in *.tar.gz;  do tar xvf $tar; done
for tar in *.tar.bz2; do tar xvf $tar; done

第二:用tar命令批量解压某个文件夹下所有的tar.gz文件
ls *.tar.gz | xargs -n1 tar xzvf

第三:find -maxdepth 1 -name "*.gz"|xargs -i tar xvzf {}
这条命令可解压当前目录下的所有gz文件
批量解压是比较郁闷的事,以前尝试各种方法,甚至用脚本循环语句解压都不行
现在发现这条命令可以搞定,maxdepth表示搜索深度,1代表只搜索当前目录

第四:for i in $(ls *.gz);do tar xvf $i;done

 

0
0
分享到:
评论

相关推荐

    Linux命令技巧之30个必会的命令技巧

    在Unix/Linux下,高效工作方式是命令行操作,本文讲述了Linux下的查找,删除,打包,解压,查询及VIM等30个常用命令技巧

    Oracle开发工具 - Oracle SQL Handler(功能强大,超方便好用, 免装客户端, Windows / Linux)

    (请将下载的 ZIP 文件解压到一目录,鼠标双击批处理文件 start.bat 即可启动运行) 主要功能如下: 将 SELECT 语句的查询结果显示在工作表,可以直接对查询结果进行再操作,如 修改、 插入行、删除行、提交(将...

    PHP程序开发范例宝典III

    实例009 Linux下安装与配置Apache 2.x 15 实例010 Linux下PHP的安装配置 16 实例011 Linux下MySQL的安装配置 18 实例012 启用Red Hat Linux 9自带的PHP运行环境 19 实例013 Linux下实现PHP支持Socket 20 ...

    python入门到高级全栈工程师培训 第3期 附课件代码

    02 文件合并与文件归档 03 文件归档与两种压缩方式 04 vim编辑器 05 系统启动流程 06 grub加密 07 bios加密 08 top命令 09 free命令 10 进程管理 第6章 01 上节课复习 02 磁盘分区 03 文件系统与挂载 04 挂载信息...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    人才招聘系统_4.2.rar

    19.新增:企业职位管理:批量自动刷新、批量删除职位和一键暂停招聘功能 20.新增:职位匹配简历功能 21.新增:简历模板功能 22.新增:微信模板消息功能 23.新增:个人用户黑名单功能 24.新增:后台-欢迎页新增:...

    易语言程序免安装版下载

    操作系统界面功能支持库(shell.fne)中的“执行()”命令增加一个参数“窗口显示方式”,作用与核心库“运行()”命令的同名参数一致。 6. 数据库操作支持库增加读写长整数字段的功能,但受限于系统接口暂不能读写...

    JAVA上百实例源码以及开源项目源代码

    Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...

    Oracle SQL Hand-Oracle工具 v5.1.zip

    另外,工作表还有单条记录操作、多功能拷贝、数值统计、查找替换等实用功能; (5) 能方便导出 XLS、CSV、INSERT Statement、HTML、XML等多种格式数据; (6) 方便操作常用数据字典如表、视图、索引、过程、函数、...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例066 员工信息的批量删除 98 实例067 表格的动态创建 99 实例068 SESSION购物车中数据的读取 100 实例069 员工信息的管理 102 实例070 网页版九九乘法表 104 实例071 读取数组购物车中的数据 105 实例072 图像...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例066 员工信息的批量删除 98 实例067 表格的动态创建 99 实例068 SESSION购物车中数据的读取 100 实例069 员工信息的管理 102 实例070 网页版九九乘法表 104 实例071 读取数组购物车中的数据 105 实例072 图像...

    【装机必备教程分享!】用U盘安装系统完全教程

     解压文件后有四个可执行文件,我们只用含“F1”的两个文件。(含“F2”的两个文件可以添加更多厂家信息,OEM用的)  一、先执行ParamEdt-F1-v1.0.10.2.exe,生成我们需要的配置文件。  除了模式一栏是必填项...

Global site tag (gtag.js) - Google Analytics