Linux命令(shell)从入门到精通 学习笔记之2 使用find和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 命令能让我们找出更改时间介于两个文件之间的文件,如有下面两个文件,它们更改时间相差大概两天: