Linux中常见find命令的使用

Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找文件,功能很强大。由于find具有强大的功能,所以它的选项也很多,需要我们花时间来了解。

命令格式:

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

命令功能:

用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

命令参数:

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

#-print 将查找到的文件输出到标准输出
   #-exec   command   {} \;      —–将查到的文件执行command操作,{} 和 \;之间有空格
   #-ok 和-exec相同,只不过在操作前要询用户

执行命令操作时,我先在Linux中建立一个name文件。

[[email protected] ~]$ mkdir name
[[email protected] ~]$ ls
Desktop  Documents  Downloads  Music  name  Pictures  Public  Templates  Videos

-name  按照文件名来查找文件。

[[email protected] ~]$ ls
Desktop  Documents  Downloads  Music  name  Pictures  Public  Templates  Videos

[[email protected] ~]$ find -name name  //查找文件名为name的文件
./name

[[email protected] ~]$ find . -name "*.txt" -print   //在当前目录查找.txt文件并显示
./test.txt

[[email protected] ~]$ find ~ -name "*.xml" -print  //在$ HOME中查找.xml文件并显示
/home/ningning/.gconf/desktop/%gconf.xml
/home/ningning/.gconf/desktop/gnome/accessibility/%gconf.xml
/home/ningning/.gconf/desktop/gnome/accessibility/keyboard/%gconf.xml
/home/ningning/.gconf/desktop/gnome/%gconf.xml
/home/ningning/.gconf/apps/nautilus/%gconf.xml
 
 
 [[email protected] ~]$ find -name "[A-Z]*" -print  //查找以大写字母开头的文件
./Downloads
./.gconf/apps/gnome-terminal/profiles/Default
./Templates
./Documents
./Music
./Pictures
./Public
./Videos
./Desktop

[[email protected] ~]$ find -name "P*" -print  //查找以大写字母P开头的文件
./Pictures
./Public

[[email protected] ~]$ find -name "*s" -print  //查找以小写字母s结尾的文件
./.xsession-errors
./.gvfs
./.gnome2/keyrings
./.gnome2/panel2.d/default/launchers
./.gnome2/nautilus-scripts
./.dbus
./.dbus/session-bus
./.gnote/addins
./.mozilla/plugins
./.mozilla/extensions
./Downloads
./.gtk-bookmarks
./.local/share/applications
./.local/share/.converted-launchers
./.nautilus
./.gconf/apps
./Templates
./Documents
./Pictures
./Videos

[[email protected] ~]$ find -name "[a-z]*" -print //查找以小写字母开头的文件
./.gnome2/keyrings
./.gnome2/keyrings/login.keyring
./.dbus/session-bus
./.dbus/session-bus/dcd26acd87eabb5cc6f2133500000028-0
./.gnote/addins
./.mozilla/plugins
./.mozilla/extensions
./.gnupg/pubring.gpg
./.cache/event-sound-cache.tdb.dcd26acd87eabb5cc6f2133500000028.i386-redhat-linux-gnu
./.pulse/dcd26acd87eabb5cc6f2133500000028-card-database.tdb
./name
./.gconf/desktop
./.gconf/desktop/gnome
./.gconf/desktop/gnome/accessibility

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

[[email protected] ~]$ find . -perm 755 -print  //查找权限755的文件
./.gnome2
./.gnome2/nautilus-scripts
./.fontconfig
./.mozilla
./.mozilla/plugins
./.mozilla/extensions
./Downloads
./.cache
./.local
./.local/share
./.local/share/applications
./.nautilus
./.config
./.config/gnome-session
./.config/gnome-session/saved-session
./.config/gnome-disk-utility
./.config/gnome-disk-utility/ata-smart-ignore
./Templates
./Documents
./Music
./Pictures
./Public
./Videos
./Desktop

//注意ok和exec的用法
[[email protected] ~]$ find -perm -007 -ok -l{} \;  //  #查所有用户都可读写执行的文件同-perm 777
< -l{} ... ./.pulse/dcd26acd87eabb5cc6f2133500000028-runtime > ? y
find: `-l./.pulse/dcd26acd87eabb5cc6f2133500000028-runtime‘: No such file or directory
[[email protected] ~]$ find -perm -007 -exec -l{} \;
find: `-l./.pulse/dcd26acd87eabb5cc6f2133500000028-runtime‘: No such file or directory

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

[[email protected] ~]$ find / -user ningning
/proc/14301/task/14301/cwd
/proc/14301/task/14301/root
/proc/14301/task/14301/exe
/proc/14301/task/14301/mounts
/proc/14301/task/14301/mountinfo
/proc/14301/task/14301/clear_refs
/proc/14301/task/14301/smaps
/proc/14301/task/14301/pagemap
/proc/14301/task/14301/attr
/proc/14301/task/14301/attr/current
/proc/14301/task/14301/attr/prev
/proc/14301/task/14301/attr/exec
/proc/14301/task/14301/attr/fscreate
/proc/14301/task/14301/attr/keycreate
/proc/14301/task/14301/attr/sockcreate
/proc/14301/task/14301/wchan
/proc/14301/task/14301/stack
/proc/14301/task/14301

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

find: `/proc/27825/fd/5‘: No such file or directory
/proc/27825/fdinfo
/proc/27825/fdinfo/0
/proc/27825/fdinfo/1
/proc/27825/fdinfo/2
/proc/27825/fdinfo/3
/proc/27825/fdinfo/4
find: `/proc/27825/fdinfo/5‘: No such file or directory
/proc/27825/ns
/proc/27825/ns/net
/proc/27825/ns/uts
/proc/27825/ns/ipc
/proc/27825/ns/mnt
/proc/27825/ns/pid
/proc/27825/net
/proc/27825/environ
/proc/27825/auxv

find   /home   -nouser              列出/home内不属于本地用户的文件或目录
find   /home   -nogroup             列出/home内不属于本地组的文件或目录

find   /home   -used   -2           列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find   /home   -user cnscn          列出/home目录内属于用户cnscn的文件或目录

find    /   -nouser                查找在系统中属于作废用户的文件

[[email protected] ~]$ find / -nouser
find: `/proc/1356/fd‘: Permission denied
find: `/proc/1356/fdinfo‘: Permission denied
find: `/proc/1356/ns‘: Permission denied
find: `/proc/1357/task/1357/fd‘: Permission denied
find: `/proc/1357/task/1357/fdinfo‘: Permission denied
find: `/proc/1357/task/1357/ns‘: Permission denied
find: `/proc/1357/fd‘: Permission denied
find: `/proc/1357/fdinfo‘: Permission denied
find: `/proc/1357/ns‘: Permission denied
find: `/proc/1382/task/1382/fd‘: Permission denied

-type  查找某一类型文件

b 块设备文件

d 目录

c 字符设备文件

p 管道文件

l 链接字符文件

f 普通文件

[[email protected] ~]$ find -type d -print
.
./.gvfs
./.gnome2
./.gnome2/keyrings
./.gnome2/panel2.d
./.gnome2/panel2.d/default
./.gnome2/panel2.d/default/launchers
./.gnome2/nautilus-scripts
./.dbus
./.dbus/session-bus
./.gnote
./.gnote/addins
./.ssh
./.fontconfig
./.mozilla
./.mozilla/plugins
./.mozilla/extensions
./Downloads
./.gnupg
./.cache

[[email protected] ~]$ find -type f -exec -l{} \;   //查看目录下所有普通文件
find: `-l./.dmrc‘: No such file or directory
find: `-l./.xsession-errors‘: No such file or directory
find: `-l./.gnome2/keyrings/login.keyring‘: No such file or directory
find: `-l./.dbus/session-bus/dcd26acd87eabb5cc6f2133500000028-0‘: No such file or directory
find: `-l./.gnote/36595867-4cc7-4b1f-b298-b25e9c2080ac.note‘: No such file or directory
find: `-l./.gnote/9d4d7c5c-d46e-42eb-8d7f-ed5921568770.note‘: No such file or directory
find: `-l./.bash_profile‘: No such file or directory
find: `-l./.fontconfig/3830d5c3ddfd5cd38a049b759396e72e-le32d4.cache-3‘: No such file or directory
find: `-l./.bashrc‘: No such file or directory
find: `-l./.pulse-cookie‘: No such file or directory

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

[[email protected] ~]$ find . -size 1000c -print  //查找长度为1000c的文件
[[email protected] ~]$ find . -size +1000c -print    //查找长度大于1000c的文件
.
./.xsession-errors
./.gvfs
./.gnome2
./.gnome2/keyrings
./.gnome2/panel2.d
./.gnome2/panel2.d/default
./.gnome2/panel2.d/default/launchers
./.gnome2/nautilus-scripts
./.dbus
./.dbus/session-bus
./.gnote
./.gnote/36595867-4cc7-4b1f-b298-b25e9c2080ac.note
./.gnote/addins
./.gnote/9d4d7c5c-d46e-42eb-8d7f-ed5921568770.note
./.ssh
./.fontconfig
./.fontconfig/3830d5c3ddfd5cd38a049b759396e72e-le32d4.cache-3
./.mozilla
./.mozilla/plugins
./.mozilla/extensions
./Downloads
./.gnupg

[[email protected] ~]$ find . -size +10 -print   //查长度超过期作废10块的文件(1块=512字节)
./.gnupg/gpg.conf
./.cache/event-sound-cache.tdb.dcd26acd87eabb5cc6f2133500000028.i386-redhat-linux-gnu
./.pulse/dcd26acd87eabb5cc6f2133500000028-device-volumes.tdb
./.pulse/dcd26acd87eabb5cc6f2133500000028-stream-volumes.tdb
./.local/share/gvfs-metadata/home-6751745f.log
./.gconfd/saved_state
./.gstreamer-0.10/registry.i686.bin
./Desktop/gnome-terminal.desktop

查找一个文件大小为5556字节的文件

[[email protected] ~]$ find /ningning -size -5557c -size +5555c -exec ls -ld{} \;

时间: 2024-10-07 02:13:20

Linux中常见find命令的使用的相关文章

linux中常见的命令

linux 中的命令非常多,但是玩过linux的人也从来不会因为Linux的命令如此之多而烦恼,我们只需要掌握其中常见的命令即可,可以在使用时去找man,会帮助你解决不少问题.下面就列出一些常见的linux命令. 1.cd命令 这是最基本的一条命令,用于切换文件目录,进入某一个文件夹内,参数为需要切换文件目录的路径,可以是绝对路径也可以是相对路径,例如: 1 cd /ren/text/ren1 #切换到目录/ren/text/ren1下面 当前位置在---ren1 2 cd ./ren2 #切换

Linux 中常见的命令行,持续更新

1.添加自己的环境变量 [email protected]:~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin [email protected]:~# PATH=$PATH:/root/wangtao/work [email protected]:~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/

linux 中常见的压缩和解压缩的命令

# linux 中常见的压缩和解压缩的命令 一.tar 1.解压: tar zxvf filename.tar 2.压缩: tar czvf filename.tar dirname 二.gz 1.解压: gunzip filename.gz gzip -d filename.gz 2.压缩: gzip filename 三.tar.gz 和 tgz 1.解压 tar zxvf filename.tar.gz 2.压缩 tar zcvf filename.tar.gz dirname 3.压缩多

linux中的压缩命令详细解析(二)

我们在<Linux中的压缩命令详细解析(一)>中已经讲解了常见的三种压缩命令,下面我们开始讲解工作中最常用到的tar命令. 为了使压缩和解压缩变得简单,tar命令就应运而生了.那么究竟该如何使用呢? tar.gz格式: 压缩命令: tar -zcvf 压缩文件名 源文件名 举例: 把abc文件压缩成后缀为tar.gz格式的文件 tar -zcvf abc.tar.gz abc 解压缩命令: 举例:解压缩abc.tar.gz文件 tar -zxvf abc.tar.gz tar.bz2格式: 压

教你在Linux中如何用命令或手动修改文件来添加一个用户

教你在Linux中如何使用命令或手动修改文件添加一个用户 首先我们从一个例子进行引入:添加一个happy用户,基本组为happy(5200),附加组为luzhi. 一.用命令的方法实现: groupadd -g 5200 happy useradd -u 5200 -g happy -G luzhi  happy passwd happy su - happy 这样就这个用户就创建成功了. 下面来演示一下: 验证系统中是否存在happy用户,从输出看是没有存在happy用户的. 2.我们先建一个

Linux中的In命令

ln是linux中一个非常重要命令.它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是: ln -s  源文件 目标文件    -s 是 symbolic的意思. 例:ln  -s  /lib/lsb   /usr/lj即:在usr目录下建立指向/lib/lsb目录的lj文件. 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link

linux中的strings命令简介

摘自:http://blog.csdn.net/stpeace/article/details/46641069 linux中的strings命令简介 在linux下搞软件开发的朋友, 几乎没有不知道strings命令的.我们先用man strings来看看: strings - print the strings of printable characters in files. 意思是, 打印文件中可打印的字符.  我来补充一下吧, 这个文件可以是文本文件(test.c), 可执行文件(te

linux中的strings命令简介2

摘自:http://blog.csdn.net/stpeace/article/details/46641069 linux中的strings命令简介 之前我们聊过linux strings的用法和用途, 但据我了解, 还有部分朋友并不常用strings, 这是个不好的习惯. 所以, 本文继续啰嗦一下strings命令. 在软件开发中, 我们经常需要修改代码, 并生成静态库.动态库或者可执行文件, 有时候, 工程太大, 那怎样确定自己改动的代码正确编译到库中去了呢? 用strings命令吧!  

辛星浅析linux中的ac命令

linux中的ac命令根据当前/var/log/wtmp文件中的登录的进入和退出来报告用户连接的时间,默认是以小时为单位,如果不使用标识,则报告的是总时间. 它的主要参数有两个: (1)-d将显示每天的连接时间. (2)-p将显示每个用户的连接时间.