linux shell 编程笔记 - 常用的find和xargs

find命令工具用于在目录下(甚至是整个文件系统),遍历地查找文件;
find path_name -option [-print -exec -ok]    #find的一般格式;
1、find命令的选项(-option)
1.1、根据名称查找文件和目录(-name):
    cb@Standalone14:~/Documents$ find . -name "cb*" -print    #在当前目录下,查找cb开头的文件及目录; 
1.2、根据文件修改时间查找文件和目录(-mtime):
    cb@Standalone14:~/Documents$ find . -mtime -2 -print    #在当前目录下,查找2天内修改的文件及目录;
    cb@Standalone14:~/Documents$ find . -mtime +5 -print    #在当前目录下,查找5天以前修改的文件及目录;
1.3、根据文件类型查找文件或目录(-type):
     find . -type d -print    #在当前目录下,查找所有的目录;
1.4、在find中使用exec和ok来执行shell命令:
    cb@Standalone14:~/Documents$ find . -type f  -exec ls -l {} \;     #在当前目录下,查找所有文件,然后执行 ls -l命令;
    cb@Standalone14:~/Documents$ find . -name "myfile2" -ok rm {} \;    #用安全模式ok,查找文件并删除文件;
    < rm ... ./shellT/myfile2 > ? yes
    root@Standalone14:/home/cb/Documents# find /etc -name "passwd*" -type f  -exec grep "cb" {} \;    #查找文件,并通过grep查看文件中是否有包含cb的行。
2、xargs
    xargs把find的结果分批传给shell命令,避免过程占用机器的资源。
    cb@Standalone14:~/Documents$ find . -type f -print | xargs file    #查找当前目录下,所有文件,然后查看这些文件的文件类型。

你可能感兴趣的:(linux,shell,shell)