龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 操作系统 > LINUX系统 >

Linux命令(shell)从入门到精通 学习笔记之2 使用find和xargs

时间:2014-06-12 02:07来源:网络整理 作者:网络 点击:
分享到:
使用 find 可以查找出符合某一特性(如权限、属主、长度、类型、名字等)的文件或目录,结合 -exec、-ok 和 -xargs,可以完成更多的工作

1. 使用 find 可以查找出符合某一特性(如权限、属主、长度、类型、名字等)的文件或目录,结合 -exec、-ok 和 -xargs,可以完成更多的工作。

 2.find 的 name 选项:

根据文件名字匹配查找,如在自己的根目录下查找符合 *.txt 的文件:

扩展:find / ! -name "myshell" -print
(
从上面的输出可以看出,对于 root 用户而言:
~
$HOME
/root
代表的都是同一个目录,就是 /root。

特别的,对于用户 xxx 而言, $HOME 和 ~ 代表的就是 /xxx 目录,这个目录的位置(以 zhy 用户为例),如下:


可以看到,/zhy 是在 /home 下。对于非管理员用户, /xxx 目录都是在 /home下,而 root用户的 /root 目录位置如下:


是直接位于根目录下的(管理员是老大嘛,当然优待咯)。
)

在当前目录下查找,就用 “.“:
# find . -name "*.txt" -print
该命令会查找当前目录及子目录下满足条件的文件。

在当前目录中查找大写字母开头的文件:
# find . -name "[A-Z]*" -print
注意后面有个 * 

在 /etc 中查找以 "host" 开头的文件:
# find /etc -name "host*" -print

在 $HOME 下查找所有文件:
# find ~ -name "*" -print

# find ~ -print

如果想让系统高负荷运转,就用从根目录查找:
# find / -name "*" -print ( # find / -print)
对这个命令稍加修改:
# find / -name "*" -print &
就可以让它在后台运行了,这个时候,通过 ctrl + c ,也不能中断它的执行了。。。

查找文件以两个小写字母开头,跟着是两个数字的 .txt 文件,可以用:
# find / -name "[a-z][a-z][0-9][0-9].txt" -print

 

3. find 的 perm 选项:

按照文件权限来查找文件。

查找文件属主可以读、写、执行,其他用户可以读、执行的文件:
# find . -perm 755 -print
如:

扩展:find . ! -perm 755 -print

4. find 的 prune 选项:

查找文件时,忽略某个目录,如:
如果希望在 /apps 目录下查找文件,但不希望在 /apps/bin 目录下查找,可以用:
# find /apps -name "/apps/bin" -prune -o -print

5. user 和 nouser 选项:

user : 根据文件的属主查找文件:
# find . -user zhy -print

在linux下,可能有些属主,可能被管理员删掉了,这个时候,就能用-nouser 选项找到那些在属主在 /etc/passwd文件中没有有效账户的文件。在用 -nouser 时,不用给出用户名。
# find / -nouser -print

6. 使用 group 和 nogroup:

就像使用 user 和 nouser 一样,group 与 nogroup 选项能找出属于某一用户组的文件,和用户组已经不存在的文件。
# find / -group zhy -print
# find / -nogroup -print

7. 使用 -mtime 选项:

该选项可以查找指定时间内或指定时间外修改的文件,如果系统突然没有可用空间了,很有可能某一个文件的长度在此期间增长迅速,这时就可以用 mtime 选项来查找这样的文件:

-1表示1日(24小时)之内更改过的文件。
+2表示2日(48小时)之前更改过的文件。

8. newer 选项:

newer 命令能让我们找出更改时间介于两个文件之间的文件,如有下面两个文件,它们更改时间相差大概两天:

精彩图集

赞助商链接