1,find命令形式

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

  pathname find命令所查找的目录路径。. 表示当前目录,/表示系统根路径

  -print 将匹配的文件输出到标准输出

  -exec find命令对匹配的文件执行该参数所给出的shel命令。相应的命令形式 'command' {} \

  -ok 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令

2,find的主要选项

  -name 按照文件名查找文件

  -perm 按照文件权限来查找文件

  -prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用了-depth,那么-prune选项将被find忽略

  -user 按照文件属主查找文件

  -group  按照文件所属组来查找文件

  -mtine -n +n 按照文件的更改时间来查找文件,-n表示更改时间距离现在n天以内,+n表示更改时间再距离现在n天以前

  -nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在

  -nouser 查询无线属主的文件,即该文件的属主在/etc/passwd中不存在

  -newer file1 !file2 查找更改时间比file1新但是比文件file2旧的文件

  -type查询某一类型的文件 b(块设备文件)、d(目录文件)、c(字符设备文件)、p(管道文件)、l(符号链接文件)、f(普通文件)

  -size n[c] 查找文件长度为n的文件,带有c时,表示文件长度以字节计

  -depth 查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找

  -fstype 查找位于某一类型文件系统中的文件。

  -mount 在查找文件时不跨越文件系统mount点

  -follow 如果find命令遇到符号链接文件,就跟踪到链接所指向的文件

  -cpio  对匹配的文件使用cpio命令,将这些文件备份到磁带设备中

3,不管当前路径是什么,如果想在自己的根目录$HOME中查找文件名符合*.txt的文件,使用~作为pathname参数,~代表自己$HOME目录,使用文件名模式匹配文件的时候,需要用引号将文件名模式引起来

  根目录查询  $  find ~  -name "*.txt"

  当前目录查询  $  find . -name "[A-Z]*"  查询以大写字母开头的文件

  指定目录查询  $  find  /etc -name "host*"   查询以host开头的文件

4,按照文件权限模式来查找文件,使用-perm,最好使用八进制的权限表示法

  find . -perm 755 -print   在当前目录查询文件权限位为755的文件

5,希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找

  find /apps -name "/apps/bin" -prune -o -print

6,按照文件属主查找文件

  find ~ -user dave -print 在$HOME目录查找属主为dave的文件

  find /etc -user dave -print  在/etc目录下查找属主为dave的文件

  查找属主已经被删除的文件,可以使用-nouser,使用时,不需要给出用户名 find /home -nouser -print

7,用户组查询

  find /apps -group accts -print 查询属于accts用户组的文件

  find / -nogroup -print查询没有用户组的文件

8,find / -mtime -5 -print  查询根目录下更改时间再5天以内的文件

  find /var/adm -mtime +3 -print 查找更改时间再3日以前的文件

9,find /etc -type d -print  查询/etc目录下的所有目录

  find . ! -type d -print  查询目录以外的所有类型的文件

10,find . -size  +1000000c -print    在当前目录查询长度大于1M的文件

  find /home/apache -size 100c -print  指定目录查找长度为100字节的文件

  find .size +10 -print   在当前目录查找长度超过10块的文件(一块等于512字节)

11,find / -name "CON.FILE"  -depth -print 从根目录开始,查找名为CON.FILE的文件,它将首先匹配所有的文件,然后再进入子目录中查找

12, find . -type f -exec ls -l {} \  匹配当前目录下的普通文件,并使用ls -l 命令列出

13,当在find中使用mv或者rm命令时,最好使用安全模式,它将在对每个匹配到文件进行操作前提示你。按y则删除,n则不删除

14,在使用find命令的-exec选项处理匹配到的文件时,find会将所有匹配到的文件都一起传递给exec执行,但是有的系统对能够传递给exec的命令长度有限制,这样的话find运行几分钟后出现溢出错误,如参数列太长或参数列溢出。但是在find在使用xargs时,xargs先获取一部分,这样它可以先处理最先获取的一部分,然后再下一批。

  find / -type f -print | xargs file 查询根目录下所有普通文件,并测试它们分别属于哪类文件

  find /apps/audit -perm -7 -print | xargs chmod o-w 在指定目录下查询所有用户具有rwx权限的文件,并首先w权限

  

shell学习笔记2-find和xargs的更多相关文章

  1. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  2. SHELL学习笔记----IF条件判断,判断条件

    SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here   ...

  3. [转帖][Bash Shell] Shell学习笔记

    [Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html  阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...

  4. shell学习笔记汇总

    1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...

  5. shell 学习笔记2-shell-test

    一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...

  6. SHELL学习笔记三

    SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 读取列表中的复杂值 从变量读取列表 从命令读取值 更改字段分隔符 用通配符读取目录 which 使用多个测试命令 unt ...

  7. 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等

    1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...

  8. [Bash Shell] Shell学习笔记

    1. Shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命 ...

  9. shell 学习笔记

    <Linux命令行与shell脚本编程大全>笔记   wkss 其他:http://www.cnblogs.com/pengdonglin137/p/3528303.html 一.基本命令 ...

随机推荐

  1. keil结合st-link使用SWO的两种调试方法笔记

    通过strongerHuang的教程,实现了SWO的两种调试方法, 1.在keil调试的过程中,使用debug printf viewer打印信息, 2.在STM32 ST-LINK Utility中 ...

  2. 001-官网安装openstack之-安装前基础环境准备

    0.安装常用软件包(根据个人习惯安装需要的软件包) [root@localhost ~]# yum -y install wget vim ntp net-tools tree openssh 1.配 ...

  3. [HNOI2009] 有趣的数列——卡特兰数与杨表

    [HNOI 2009] 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇数项满足a1<a3<…&l ...

  4. 通过无线网络使用ADB ( Connect to android with ADB over TCP )

    之前用USB数据线连接电脑和android手机,用adb操控手机. 后来电脑前面板的USB全坏了,键盘.鼠标.USBKkey.打印机都需USB,  少一个USB口,只得对不常用设备进行插拔切换. 于是 ...

  5. learning express step(五)

    learning  express  middleware var express = require('express'); var app = express(); var myLogger = ...

  6. Poj 2165 Milking Grid(kmp)

    Milking Grid Time Limit: 3000MS Memory Limit: 65536K Description Every morning when they are milked, ...

  7. windows游戏编程封装窗口类

    本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/22451353 作者:jadeshu   邮箱: jades ...

  8. Egyptian Collegiate Programming Contest (ECPC 2015)

    题目链接:https://vjudge.net/contest/155219#overview. A题,用全排列来找出比当前这个数字字典序还大的排列有几个,然后前缀和dp即可.据说可以康拓展开来快速找 ...

  9. 【spring源码分析】IOC容器初始化——查漏补缺(四)

    前言:在前几篇查漏补缺中,其实我们已经涉及到bean生命周期了,本篇内容进行详细分析. 首先看bean实例化过程: 分析: bean实例化开始后 注入对象属性后(前面IOC初始化十几篇文章). 检查激 ...

  10. .net core 修改 Identity/AspNetUsers 数据库

    众所周知,.net core有一套完整的用户管理功能.使用它就能实现用户的管理及登录登出功能.现在问题来了,我们有时候需要添加一些字段,该怎么办呢?当然是修改他呀.修改方法参考链接:https://m ...