Linux,find 和perl正则替换文件内容、tar解压缩、cp复制、rm删除

find -name 'xixi.php' |xargs perl -pi -e 's|hello|aa|g'

find -name '*.html' |xargs perl -pi -e 's|aa|hello|g'

find -name '*.html' |xargs perl -pi -e 's|<script src="a.js([^>]*)></script>||g' (注:好像只能匹配替换单行)

Linux 当大批文件被挂马时(挂js文件),用此方法替换。

从根目录下开始查找abc.cpp文件,无错误输出

find / -name abc.cpp 2>/dev/null

在当前目录下所有.cpp文件中查找efg函数

find -name "*.cpp" | xargs grep 'efg'

xargs展开find获得的结果,使其作为grep的参数

另外 rm mv等命令对大量文件操作是报错 -bash: /bin/rm: Argument list too long

也可用xargs 解决

删除当前目录下所有.cpp文件

find -name "*.cpp" | xargs rm

window下可用AFR - Advanced Find and Replace 中文绿色正式版 支持正则可用来批量删除网页木马 工具。

linux里有很多瑞士军刀,find便是其中之一。如题,我要用find去快速列出最近一段时间修改的文件,怎么办?

$ find -mtime 0 #查找当前目录一天之前到此时之间修改的文件,也就是过去的24小时内修改的文件。

$ find -mtime -1 #查找当前目录小于1天(1*24)之前的修改过的文件,也就是24小时内修改的文件,这个和上面的结果一样。

$ find -mtime 1 #查找当前目录等于1天(1*24)之前的修改过的文件,也就是24小时之前(包括1)修改的文件

$ find -mtime +1 #查找当前目录大于1天(1*24)之前的修改过的文件,也就是至少2天之前修改的文件。mtime后的参数只能是整数,所以只能是大于1的要从2开始。

当然除了mtime,还有mmin(n 分钟之前最后修改),ctime(文件状修改时间),cmin(文件状态修改),atime(访 问时间),amin( 最后访问时间,单位为分钟),详细参数可以参考man find。

------------------------------------------------------------------------------------------------------------------------------------

linux如何复制文件夹

CP命令
格式: CP [选项] 源文件或目录 目的文件或目录
选项说明:-b 同名,备分原来的文件
-f 强制覆盖同名文件
-r 按递归方式保留原目录结构复制文件
cp -r /tmp/a /root/a
记得有空格

(\cp -rf /tmp/a /root/a 加一个\不出现询问是否覆盖)

--------------------------------------------------------------------------------------------------------------------------------

直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字

-r 就是向下递归,不管有多少级目录,一并删除

-f 就是直接强行删除,不作任何提示的意思

删除文件夹实例:

rm -rf /var/log/httpd/access

将会删除/var/log/httpd/access目录以及其下所有文件、文件夹

需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的

当然,rm还有更多的其他参数和用法,man rm就可以查看了

删除文件使用实例:

rm -f /var/log/httpd/access.log

将会强制删除/var/log/httpd/access.log这个文件

--------------------------------------------------------------------------------------------------------------------------------

linux解压 tar命令

# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!

# 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~

# 这分别代表 standard output, standard input 与管线命令啦!

# 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰!

--------------------------------------------------------------------------------------------------------------------------------