`

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下rar及zip压缩包中批量替换某文件脚本

    在Linux环境下,对rar和zip压缩包进行批量替换文件的操作是一项常见的系统管理任务。这通常涉及到脚本编程,以便自动化处理大量的压缩文件。标题提到的`zip_replace.sh`和`rar_replace.sh`就是两个用于执行这个任务...

    linux文件命令linux

    总之,`file`、`mkdir`和`grep`是Linux系统中不可或缺的文件管理命令,它们各自承担着识别文件类型、创建目录和搜索文本的功能,极大地提高了用户的工作效率。熟练掌握这些命令,能让你在Linux环境中更加得心应手。

    文件批量处理工具,查找相应目录下所有文件的行数

    标题中的“文件批量处理工具,查找相应目录下所有文件的行数”指的是一个软件或脚本程序,它的功能是自动遍历指定目录及其子目录,统计其中每个文件的行数。这种工具在软件开发、代码审计或者数据分析场景中非常有用...

    批量查找替换重置.rar

    综上所述,"批量查找替换重置.rar"可能包含一个工具或者指南,用于帮助用户批量处理文件中的查找和替换操作,并提供重置功能以撤销之前的更改。在实际应用中,理解和掌握批量查找替换技巧,能显著提高工作效率,简化...

    linux脚本批量更新文件名和映射的引用文件名

    本文将详细介绍如何创建一个Linux脚本来批量更新文件名以及相应引用文件中的映射。 首先,我们需要理解这个脚本的基本工作流程: 1. **获取文件列表**:首先,脚本需要获取待处理文件的列表。这可以通过`find`命令...

    ReName(绿化)批量修改文件名/扩展名

    **批量修改文件名/扩展名的...总的来说,"ReName(绿化)"是一款功能强大且易于使用的批量文件命名工具,对于提高工作效率和文件管理的规范性具有显著作用。合理利用其功能,可以极大地优化我们的日常文件管理工作。

    Linux 入门时必学60文件处理个命令

    7. **cp**:复制文件或目录,用于备份或移动文件。 8. **mv**:移动文件或重命名文件,具有更改文件位置和名称的功能。 9. **rm**:删除文件,操作需谨慎,因为一旦删除,文件通常无法恢复。 10. **cat**:查看或...

    初学Linux必须要掌握的150个命令.pdf

    - **作用**:`man` 命令是Linux中用于提供在线帮助的手册页命令,允许用户查找关于其他命令、配置文件和库函数的详细信息。 - **格式**:`man [-afpM] [命令]` - **主要参数**: - `-a`:在所有的手册页中搜索。 -...

    学 Linux必须掌握的150个命令

    - `cp`:复制文件或目录。 - `mv`:移动或重命名文件和目录。 - `rm`:删除文件或目录。 - `ln`:创建软链接或硬链接。 - `find`:查找符合特定条件的文件。 - `rename`:批量更改文件名。 2. **文件查看及...

    工程师必用linux命令整理

    - **功能**: 在不同服务器之间复制文件或目录。 - **应用场景**: 文件传输。 #### 34. 按照时间顺序排列文件 - **命令**: `ls -t` - **功能**: 按照文件的修改时间排序。 - **应用场景**: 文件排序。 #### 35. ...

    linux常用命令总结

    `cp` 命令用于复制文件或目录。例如,要将所有扩展名为 `.txt`、`.doc` 和 `.bak` 的文件复制到 `/home` 目录下,可以使用: ``` cp *.txt *.doc *.bak /home ``` 若要复制整个目录,需要使用 `-R` 参数。 #### ...

    Linux命令大全 Linux命令大全

    6. `cp`:复制文件或目录,`-r` 用于递归复制目录。 7. `mv`:移动或重命名文件和目录。 8. `touch`:创建新文件或更新文件时间戳。 9. `find`:根据指定条件搜索文件,如 `find . -name "filename"` 在当前目录下...

    Linux的命令集合

    在Linux操作系统中,命令行是用户与系统交互的主要方式,其效率高且功能强大。Linux命令集合涵盖了系统管理、文件操作、网络通信、文本处理等多个领域。以下是一些常见的Linux命令及其用途: 1. **ls**:列出目录...

    LINUX 常用维护命令

    根据给定文件的信息,我们可以提炼出一系列与Linux操作系统相关的维护命令和操作技巧,这些知识点对于系统管理员、开发者以及任何希望深入了解Linux系统运维的人来说都极为重要。以下是对标题、描述及部分列出内容的...

    Linux命令大全(A-Z类命令)

    以上只是部分常见命令的介绍,Linux命令大全中还包括更多如网络配置、文件系统管理、进程控制等领域的命令,学习和理解这些命令将极大地提升你在Linux环境下的操作能力。建议通过阅读`Linux命令.pdf`文档来深入学习...

    Linux常用命令全集

    - `cp`:复制文件或目录,`-r`用于递归复制目录。 - `mv`:移动或重命名文件或目录。 2. **文本处理**: - `cat`:查看文件内容,常用于小文件。 - `more`/`less`:分页查看文件内容,可上下滚动。 - `head`/`...

    Linux一行命令处理批量文件详解

    - 在Linux中,除了使用`sed`进行文件名处理外,还可以通过命令组合实现文件的批量解压。 - **应用场景**: - 当需要解压大量压缩文件,并将其内容输出到指定文件时,这种方法非常高效。 - **命令解析**: - **...

    Linux命令大全_linux_

    7. `cp`:复制文件或目录,如 `cp file1.txt file2.txt` 复制文件,`cp -r dir1 dir2` 复制目录。 8. `mv`:移动或重命名文件或目录,如 `mv file1.txt file2.txt` 重命名文件,`mv dir1 dir2` 移动目录。 二、...

    linux基本命令

    2. **模拟Windows `dir` 命令的功能**:这部分要求在Linux环境下编写一个程序来模拟Windows下的`dir`命令,即显示当前目录下的文件和子目录列表。 3. **结构体数组的应用**:这部分要求编写一个C语言程序,用于输入...

    Linux指令集 (可执行文件)

    7. **cp**:复制文件或目录,`-r` 用于递归复制目录。 8. **mv**:移动或重命名文件或目录。 二、文件及文本操作指令 1. **cat**:查看文件内容,`-n` 会显示行号。 2. **more/less**:分页查看文件内容。 3. **vi...

Global site tag (gtag.js) - Google Analytics