`

ubuntu 搜索文件方法(find命令)

 
阅读更多
通用格式:find pathname -options [-print -exec -ok]
例子:
find / -name filename 再根目录里面搜索文件名为filename的文件
find /etc -name *s*在目录里面搜索带有s的文件
find /etc -name *S 在目录里面搜索以s结尾的文件
find /etc -name s*在目录里面搜索以s开头的文件
find / -amin -10在系统中搜索最后10分钟访问的文件
find / -atime -2查找在系统中最后48小时访问的文件
find / -empty 查找在系统中为空的文件或者是文件夹
find / -group groupname 查找在系统中属于groupname的文件
find / -mmin -5查找在系统中最后5分钟修改过的文件
find / -mtime -1查找在系统中最后24小时修改过的文件
find /-nouser查找在系统中属于费用户的文件
find / -user username 查找在系统中属于username的文件
find / -ctime -1查找在系统中最后24小时被改变状态的文件
find / -fstype type查找在系统中文件类型为?的文件
find / -user user1name -or -useruser2name查找在系统中属于user1name或着属于user2name的文件
find / -user user1name -and-user2name在系统中查找既属于user1name又属于user2name用户的文件.

一、find 命令格式


1、find命令的一般形式为;

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


2、find命令的参数;

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } /;,注意{}和/;之间的空格。
-ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。


3、find命令选项

-name
按照文件名查找文件。
-perm
按照文件权限来查找文件。
-prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user
按照文件属主来查找文件。
-group
按照文件所属的组来查找文件。
-mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-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:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

另外,下面三个的区别:

-amin n
  查找系统中最后N分钟访问的文件
  -atime n
  查找系统中最后n*24小时访问的文件
  -cmin n
  查找系统中最后N分钟被改变文件状态的文件
  -ctime n
  查找系统中最后n*24小时被改变文件状态的文件
   -mmin n
  查找系统中最后N分钟被改变文件数据的文件
  -mtime n
  查找系统中最后n*24小时被改变文件数据的文件


4、使用exec或ok来执行shell命令

使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的

在有些操作系统中只允许-exec选项执行诸如l s或ls-l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。

exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个/,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。

例如:为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中

# find . -type f -exec ls -l { } /;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README

上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
在/logs目录中查找更改时间在5日以前的文件并删除它们:

$ find logs -type f -mtime +5 -exec rm { } /;

记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。

在下面的例子中,find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。

$ find . -name "*.conf" -mtime +5 -ok rm { } /;
< rm ... ./conf/httpd.conf > ?n

按y键删除文件,按n键不删除。

任何形式的命令都可以在-exec选项中使用。

在下面的例子中我们使用grep命令。find命令首先匹配所有文件名为“passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个sam用户。

# find /etc -name "passwd*" -exec grep "sam" { } /;
sam:x:501:501::/usr/sam:/bin/bash



摘自:http://blog.csdn.net/chenqiai0/article/details/8150782
分享到:
评论

相关推荐

    Ubuntu权威指南(2/2)

    2.4.8 搜索文件 41 2.4.9 最近的文档 42 2.5 系统菜单 42 2.5.1 首选项 42 2.5.2 系统管理 45 2.5.3 锁住屏幕 51 2.5.4 注销 51 2.5.5 关机 51 2.6 使用移动存储设备 51 2.6.1 浏览移动存储介质 52 2.6.2 写入移动...

    ubuntu查看软件安装目录

    可以通过whereis 软件名的命令查看所有的文件路径,比如你想查找google-chrome文件,那么就: whereis google-chrome 将会显示诸如:google-chrome: /usr/bin/google-chrome /usr/share/man/man1/google-chrome.1 的...

    Linux文件查找工具之find“大宝剑”

    一、文件查找工具常用软件  locate:  locate命令其实是find -name的另一种写法...  find命令用来在指定目录下查找文件,通过遍历指定的目标目录,实时查找符合指定属性的文件。可以结合正则表达式(REGular EXPres

    Ubuntu权威指南(1/2)

    2.4.8 搜索文件 41 2.4.9 最近的文档 42 2.5 系统菜单 42 2.5.1 首选项 42 2.5.2 系统管理 45 2.5.3 锁住屏幕 51 2.5.4 注销 51 2.5.5 关机 51 2.6 使用移动存储设备 51 2.6.1 浏览移动存储介质 52 2.6.2 写入移动...

    Linux常用命令及操作技巧汇总

    2)文本与文件查找:grep和find命令将会很便利。3)系统管理篇:服务状态的查询命令,服务配置文件的缩写,访问控制方式分类以及源代码编译安装等。4)硬盘分区:链接文件及挂载命令等;5)BASH方面:Shell脚本的...

    Linux最佳入门-个人学习笔记-知识点总结.rar

    这是个人10年前的Linux Ubuntu学习笔记,之后查笔记时,都会补充新知识,也有纠错,涵盖了10个PDF文件,由有道笔记导出,非常适合初学者。这些PDF文件包含了丰富的知识和实用技巧,能够帮助您更好...1.10 find命令.pdf

    Linux中一种友好的find替代工具(fd命令)

    fd 命令提供了一种简单直白的搜索 Linux 文件系统的方式。 fd 是一个超快的,基于 Rust 的 Unix/Linux find 命令的替代品。它不提供所有 find 的强大功能。但是,它确实提供了足够的功能来覆盖你可能遇到的 80% 的...

    Busybox的安装和使用

    1):在shell环境下执行命令:sudo apt-get install busybox,该命令将busybox的可执行文件安装在/bin文件夹下, 安装完成之后可以直接在shell下输入busybox来启动busybox。但是无法进行busybox的配置( make ...

    UbuntuChina12

    2.4.8 搜索文件 41 2.4.9 最近的文档 42 2.5 系统菜单 42 2.5.1 首选项 42 2.5.2 系统管理 45 2.5.3 锁住屏幕 51 2.5.4 注销 51 2.5.5 关机 51 2.6 使用移动存储设备 51 2.6.1 浏览移动存储介质 52 2.6.2 写入移动...

    Loadrunner监控linux的相关配置

    使用find命令:root@shituwebserver:~# find / -name rpc.rstatd(该命令用于查找系统中是否存在rpc.rstatd文件,如果没有,说明系统没有安装rstatd守护程序);如果服务器上没有安装rstatd程序(一般ubuntu是没有...

    holberton-system_engineering-devops:创建此存储库的目的是了解ubuntu 14.04的Shell命令。 还学习如何制作无所事事的脚本并了解网络

    系统工程与DevOps 介绍 该存储库包含有关shell基本权限,重定向,变量... 创建它是为了了解shell,i / o重定向,特殊字符和其他手册页:命令-&gt; head , tail , find , wc , sort , uniq , grep , tr 它的创建

    linux.chm文档

    find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 find / -user user1 搜索属于用户 'user1' 的文件和目录 find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件 find ...

    Linux从零入门实战-2019年七月Z线.txt

    知识点5: find 与 grep:搜索神器find命令基本用法 知识点6: tar命令 知识点7: ssh和sshd 实战项目: ssh登陆到你的Linux系统,使用find、grep、tar等常用命令解决具体问题 第二阶段 Linux开发基础与shell编程 ...

    Python基础班视频.zip

    目录网盘文件永久链接 01-课程介绍.mp4 02什么是操作系统.mp4 03-常见的OS.mp4 04unix.minix.linux操作系统的发展mp4 05Linux的不同版本和应用领域.mp4 06命令的介绍、ls mp4 07_目录结构.mp4 08-命令的基本格式.ls...

    ubuntu部落(适合初学者,可以作为初学者的手册)

    设定命令的搜索路径.....................................42 Ubuntu 系统简介....................................................45 Ubuntu 系统目录结构....................................45 启动流程.........

    查看MySQL的错误日志的方法

    MySQL的错误信息是在data目录下的,且文件名为&lt;hostname&gt;.err(指的是主机名),但由于每个人安装的环境不一样,或你忘记了data目录的所在位置,你可以通过下面方法查找。 #hostname //获得主机名 &lt;hostname&gt; #find / ...

    wireshark源码

    问题原因是ubuntu下缺少pcap.h等文件。 解决方法: 编译安装libpcap. 在www.tcpdump.org页面中可下载源码:libpcap-1.0.0.tar.gz cd到文件目录: view plaincopy to clipboardprint? $tar -xvf libpcap-1.0.0....

    wireshark-1.12.0最新源码

    问题原因是ubuntu下缺少pcap.h等文件。 解决方法: 编译安装libpcap. 在www.tcpdump.org页面中可下载源码:libpcap-1.0.0.tar.gz cd到文件目录: view plaincopy to clipboardprint? $tar -xvf libpcap-1.0.0....

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    11.我们双击文件列表的dialog.ui 文件,便出现了下面所示的图形界面编辑界 面。 12.我们在右边的器件栏里找到Label 标签器件 13.按着鼠标左键将其拖到设计窗口上,如下图。 14.我们双击它,并将其内容改为helloworld...

    docker-gerrit:使用 gerrit 代码审查系统构建 Docker 容器

    当前文件将构建一个基于 ubuntu:trusty 镜像的镜像。 图片包括: 主管 Gerrit 2.9 使用 H2 存储后端 图像中公开了以下端口: 8080/tcp (http) - Gerrit Web 界面 29418/tcp (ssh) - 受限的 gerrit ssh 守护进程 ...

Global site tag (gtag.js) - Google Analytics