您好,欢迎来到微智科技网。
搜索
您的当前位置:首页linux 基础命令学习---find, sed

linux 基础命令学习---find, sed

来源:微智科技网

文本流之于Unix,犹如扭动的丝带,将Unix下的各种小工具组合在一起. 这是unix的哲学基础之一的体现:

"组合原则:设计时考虑拼接组合". 常用工具find, sed的配合使用就是这种组合的体现.

先看find 命令:

1. find 命令的一般形式为:

find pathname –options [-print –exec -ok...]

find的命令参数:

find的命令选项:

find命令的例子;

下面两种方法都可以使用

$ find $HOME -print
$ find ~ -print

$ find . -type f -perm 4 -exec ls -l {  } /;


3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;

$ find / -type f -size 0 -exec ls -l {  } /;

$ find /var/logs -type f -mtime +7 -ok rm {  } /;


5、为了查找系统中所有属于root组的文件;

$find . -group root -exec ls -l {  } /;
-rw-r--r--    1 root     root          595 10月 31 01:09 ./fie1

该命令只检查三位数字,所以相应文件的后缀不要超过999。先建几个admin.log*的文件 ,才能使用下面这个命令

$ find . -name "admin.log[0-9][0-9][0-9]" -atime -7  -ok
rm {  } /;
< rm ... ./admin.log001 > ? n
< rm ... ./admin.log002 > ? n
< rm ... ./admin.log042 > ? n
< rm ... ./admin.log942 > ? n

$ find . -type d | sort

    步骤:找出文件,找到地方,替换。

    寻找命令:找到文件(find,ls),找到地方(grep),替换(sed)。

    现在需要做的,就是组合起来。

    查找资料,有前辈告诫:“find 命令是所有 Linux 命令中最有用的一个,同时也是最混乱的一个”,顿时奔溃。

    还好,发现find命令有个叫“-exec”的,很是强大:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} /;,注意{}和/;之间的空格。

    个人理解:-exec参数中的“{}”是该参数前命令产生的结果的占位符。

    而且还可以有多个-exec参数,很是强大。基本上grep和sed都可以作为子命令在其中运行了。

    如此一来,可以使用以下命令列出需要替换的字符串所在的行了:

以下是代码片段:

find ./ -exec grep "/adm/images/c.gif" '{}' /;

    然后再使用一个-exec参数吧sed包含进来吧。

以下是代码片段:
find ./ -exec grep "/adm/images/c.gif" '{}' /; -exec sed -i .bak 's///adm//images//c.gif///Admin//Images//c.gif/g' {} /;

8. 重命名文件:

为此要实现上面文件备份的需要,只需要使用命令

find /home/oracle –mtime 1 –exec cp {} /backup/{}.backup /;即可。

另外需要注意的是,在Linux操作系统中find命令只可以找到最近一天修改的文件。而在Linux操作系统中,还有mmin参数,这个参数是以分钟为单位,如可以找到那些最近4个小时或者1个小时之内修改过的文件,从而提高备份的频率。为此系统工程师可以根据用户的需要来调整文件备份的频率。不过笔者认为,一般情况下文件备份一天一次即可。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务