linux批量操作文件命令总结

总结下常用的linux命令,linux下的命令组合着实强大。有时候即便是使用的windows系统也可以在Dos窗口下使用linux下的一些命令工具,完成一些文本日常处理。

linux批量操作文件命令总结_第1张图片

查找所有文件

find ./ -name "*.log"

查找某一后缀的文件并删除

find ./ -name "*.log" |xargs rm -rf

文件批量重命名方法

#查找当前路径下的所有文件,定向输出到old文件
$find ./ -name '*.log'  > old 2> /dev/null

$cat old
#遍历替换.log后缀名为.txt后缀名
$for i in `cat old`;do echo mv $i ${i/.log/.txt}; done > mv  2> /dev/null
#查看文件
$cat mov

#不想保存mv语句,直接执行mv命令,那就执行以下命令
$for i in `cat old`;do  mv $i ${i/.log/.txt}; done 2> /dev/null | bash -x

批量重命名原理解释

1.首先用find命令找到满足条件的文件,把结果重定向到文件old(find寻找的对象里面包含正则匹配符号时记得外面要用单引号,否则会报错)。 

2.变量循环读取文件old,使用替换方法,生成mv命令到新文件mv,先不执行生成的mv命令(注意命令中do和done后面没有分号)。

linux 下用find命令查找文件,rm命令删除文件。

删除指定目录下指定文件
find 要查找的目录名 -name .svn |xargs rm -rf

删除指定名称的文件或文件夹: find -type d | grep .svn$ | xargs rm -r

分析:
find -type d | grep .svn$ 通过此命令查找文件夹 过滤正则表达式中的目录
| xargs rm -r 执行删除指令

删除目录下所有exe文件

find . -name '*.exe' -type f -print -exec rm -rf {} ;

(1) "." 表示从当前目录开始递归查找

(2) “ -name '*.exe' "根据名称来查找,要查找所有以.exe结尾的文件夹或者文件

(3) " -type f "查找的类型为文件

(4) "-print" 输出查找的文件目录名

(5) 最主要的是是-exec了,-exec选项后边跟着一个所要执行的命令,表示将find出来的文件或目录执行该命令。exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个,最后是一个分号。

grep常用指令

搜索文件中的内容,递归文件夹查找字符串。

$grep "xxx"  -R -n ./

-R:递归查找

-n:显示行号 

指定查找目录:

grep "xxx" -R -n /system/core

grep A | grep B                //显示既匹配A又匹配B的行

例如:grep "getValue"  -R -n ./ | grep KEY_SCENE_MOD

linux批量操作文件命令总结_第2张图片

"或"操作查找两个字符串:

grep -E 'A|B' filepath        //显示匹配A或匹配B的行

例如:

grep -E 'getBlock|forwardPdfiumError'  -R -n ./jni/android/graphics/

find命令删除指定文件

--时间单位为天
find 查询路径  -ctime/-mtime/-atime 时间范围 -name 文件名称 -type f -exec rm {} \;
--时间单位为分钟
find 查询路径  -cmin/-mmin/-amin 时间范围 -name 文件名称 -type f -exec rm {} \;

#--删除/home/testfile目录下修改时间大于2天,后缀为.dat的文件
find /home/testfile  -mtime +2 -name "*.dat" -type f -exec rm {} \;

Linux为我们提供了一个简便的查询方式,那就是 +n 和 -n。下面以 -mtime 举例说明:
  -mtime n : n为数字,意思为在n天之前的“一天之内”被更改过内容的文件
  -mtime +n : 列出在n天之前(不含n天本身)被更改过内容的文件名
  -mtime -n : 列出在n天之内(含n天本身)被更改过内容的文件名
找 “5天之内被更改过的文件” 就是 find / -mtime -5 ,找“5天前的那一天被更改过的文件” 就是 find / -mtime 5 ,找“5天之前被更改过的文件” 就是 find / -mtime +5。+5 代表大于等于 6 天前的文件, -5 代表小于等于 5 天内的文件,5 则是代表 5-6 那一天的文件。

自动删除7天前的文件
下面的脚本是删除/home目录下7天前的文件:

#!/bin/bash
find /home/ -type f -mtime +7 -exec rm -f {} \;

把这个脚本保存在/tmp目录下,命名为:clearfile.sh

加入计划任务

crontab -e

10 22 * * * /bin/sh /tmp/clearfile.sh

这个表示为,每天22点10分执行这个脚本。

Linux crontab 命令

Linux crontab 是用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

crontab [ -u user ] { -l | -r | -e }

 命令思维导图

引用

linux 命令 find与rm实现查找并删除目录或文件 - 会飞的斧头 - 博客园

【转】find命令批量修改文件后缀_cuihe6058的博客-CSDN博客

find命令批量修改文件后缀_ITPUB博客

Linux下批量修改后缀名_weixin_33795833的博客-CSDN博客

Linux常用命令大全(非常全面)_江畔独步的博客-CSDN博客_linux常用命令

linux系统 常用命令(全面总结)_籽麟网络的博客-CSDN博客_linux命令总结

Linux常用命令,目录解析,思维导图_51CTO博客_linux常用命令删除目录

LINUX基本指令_本小爷世界第一花式帅的博客-CSDN博客

find命令查询指定时间的大文件并删除_DBA_JohnHuang的博客-CSDN博客 

【shell】find查找某段时间内的文件|定期删除7天前的文件|shell显示特定时间段文件_bandaoyu的博客-CSDN博客_find查看七天的文件

三分钟上手linux基本指令_就爱酸辣土豆丝的博客-CSDN博客 

Linux crontab 命令 | 菜鸟教程

你可能感兴趣的:(linux应用开发,linux,运维,服务器)