本节内容:
一些用于文件的批量查找与复制、批量解压、批量删除的linuxcmd/ target=_blank class=infotextkey>linux命令。
首先,find命令的例子:
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/目录下。
批量解压文件是否可以这样:
其实是不可以的,执行结果如下:
为什么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 *.tar
tar接收到的是:
tar -xvf a.tar b.tar c.tar ...
tar理解为,在a.tar里解出b.tar c.tar .
正确的方法,如下:
第一:
第二:用tar命令批量解压某个文件夹下所有的tar.gz文件
第三:
说明:
maxdepth表示搜索深度,1代表只搜索当前目录。
第四: