linux 根据内容查找文件

来源:互联网 发布:网络数字共青团 编辑:程序博客网 时间:2024/06/05 17:16

linux 根据内容查找文件

grep "TCP_NODELAY" -r /usr

这样就递归查找/usr下的所有内容里带有TCP_NODELAY的文件了

很快找到了/usr/include/linux/tcp.h #define TCP_NODELAY 1

此外,知道文件名搜文件位置 find / -name "filename"


 find / -name httpd.conf

    find / -name access_log 2>/dev/null

    find /etc -name '*srm*'

    find / -amin -10 # 查找在系统中最后10分钟访问的文件

    find / -atime -2 # 查找在系统中最后48小时访问的文件

    find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件

    find / -mtime -1 #查找在系统中最后24小时里修改过的文件

    find / -cmin -5 # 查找在系统中最后5分钟里被改变状态的文件

    find / -ctime -1 #查找在系统中最后24小时里被改变状态的文件

    find / -user reda #查找在系统中属于fred这个用户的文件

    find / -not -user reda #查找在系统中不属于FRED这个用户的文件

    find / -group redagrp # 查找在系统中属于redagrp组的文件

    find / -gid 501 #查找系统中属于组id为501的文件

    find / -user fred -a -group redagrp

    find / -user reda -o -user tracy

    find / -nouser #查找在系统中属于作废用户的文件

    find / -empty # 查找在系统中为空的文件或者为空的文件夹

    find / -false #查找系统中总是错误的文件

    find / -size +5k #查找系统中大于5k字节的文件

    find / -size +5c #查找系统中大于5字节的文件

    find / -perm +6000

    find / -type b

    文件类型:

    b 块(缓冲)设备.

    c 字符设备.

    d 目录.

    p 有名管道(FIFO).

    f 规则文件.

    l 符号链结.

    s 插座.

    find / -maxdepth 2 -name fred

    find /tmp -size +10000000c -and -mtime +2

    find / -user reda -or -user tracy

    find /tmp ! -user reda

    find / -name "httpd.conf" -ls

    find / -user reda -exec ls -l {} \;

    find / -user reda -ok #确认后执行

    find / -user reda | xargs ls -l


查看目录大小

进入例如IBM 目录下,du -sh *,可以看到文件夹大小

linux xargs

xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。

xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,下面是一些如何有效使用xargs 的实用例子。

1. 当你尝试用rm 删除太多的文件,你可能得到一个错误信息:/bin/rm Argument list too long. 用xargs 去避免这个问题

find ~ -name ‘*.log’ -print0 | xargs -0 rm -f


2. 获得/etc/ 下所有*.conf 结尾的文件列表,有几种不同的方法能得到相同的结果,下面的例子仅仅是示范怎么实用xargs ,在这个例子中实用 xargs将find 命令的输出传递给ls -l

# find /etc -name "*.conf" | xargs ls –l


3. 假如你有一个文件包含了很多你希望下载的URL, 你能够使用xargs 下载所有链接

# cat url-list.txt | xargs wget –c


4. 查找所有的jpg 文件,并且压缩它

# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz


5. 拷贝所有的图片文件到一个外部的硬盘驱动 

# ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory


0 0
原创粉丝点击