导航:首页 > 程序命令 > find命令使用

find命令使用

发布时间:2023-01-29 07:05:19

① find命令怎么使用

本视频是由ThinkpadE15品牌、centos7系统、find4.6版本录制的。linux中find的使用法?
操作系统:centos7
软件版本:find4.6
设备型号:ThinkPadE15
find命令用于查找指定目录下的文件,同时也可以调用其它命令执行相应的操作。

find语法格式:find路径名称选项
find命令选项:
-name按照文件名查找文件。“名称”
-perm按照文件权限来查找文件。666777等
-user按照文件属主来查找文件
-group按照文件所属的组来查找文件
-mtime-n/+n按照文件的更改时间来查找文件,
-n表示文件更改时间距现在n天以内
+n表示文件更改时间距现在n天以前
-type查找某一类型的文件
b-块设备文件
d-目录
c-字符设备文件
p-管道文件
l-符号链接文件
f-普通文件
-sizen查找符合指定的文件大小的文件
-exec对匹配的文件执行该参数所给出的其他linux命令,相应命令的形式为'命令{};,注意{}和;之间的空格,{}代表查到的内容
例1:查找当前目录下所有的TXT格式的文件
[root@xuegod63~]#toucha.txtxuegod.txt
[root@xuegod63~]#find.-name"*.txt"
。。。
./a.txt
./xuegod.txt
2、按照更改时间或访问时间等查找文件
如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项
mtime:文件最后一次修改的时间
atime:最后一次访问时间
ctime:文件的最后一次变化时间,也就是修改时间
例1:在root目录下查找更改时间在1天以内,被黑客修改的文件
[root@xuegod63~]#find/root/-mtime-1

对查找内容执行相应命令
-exec这个选项参数后面可以跟自定义的SHELL命令,格式如下:
例2:把查找到的文件复制到一个指定的目录
[root@xuegod63~]#touch{1,2,3}.back
[root@xuegod63mnt]#find/root-name"*.txt"-execcp{}/opt;
例3:查找多个类型文件
find命令中比较符的使用:
-aand并且
-oor或者
+超过
-低于
[root@xuegod63~]#toucha.pdfback.sh
[root@xuegod63~]#find./-name"*.sh"-o-name"*.pdf"
[root@xuegod63~]#find/etc-size+20k-a-size-50k|wc-l
22
[root@xuegod63~]#find/etc-size+20k|wc-l
49
例4:按权限查找:-perm
[root@xuegod63~]#find/bin/-perm755#等于0755权限的文件或目录
[root@xuegod63~]#find/bin/-perm-644#-perm-644至少有644权限的文件或目录
例5:查找的目录深度:
-maxdepth1#只查找目录第一层的文件和目录
如:查找/bin目录下权限等于644的文件
[root@xuegod63~]#find/etc/-maxdepth1-perm644|more

总结:find命令使用方法和参数
find命令选项:
-name按照文件名查找文件。“名称”
-perm按照文件权限来查找文件。666777等
-user按照文件属主来查找文件
-group按照文件所属的组来查找文件
-mtime-n/+n按照文件的更改时间来查找文件,
-n表示文件更改时间距现在n天以内
+n表示文件更改时间距现在n天以前
-type查找某一类型的文件
b-块设备文件
d-目录
c-字符设备文件
p-管道文件
l-符号链接文件
f-普通文件
-sizen查找符合指定的文件大小的文件
-exec对匹配的文件执行该参数所给出的其他linux命令,相应命令的形式为'命令{};,注意{}和;之间的空格,{}代表查到的内容

② find命令的作用是什么

find 命令——文件或目录查找而且可以直接对查找结果使用命令。例如:
find 查找范围 查找条件
-name 按名称查找
-maxdepth 查看多深的文件,不能超过所限制的目录下的内容
-mindepth 查看不小于多深的文件,不低于所限制内容
-not 非
-o 或
-a 与
-user 查找属于某用户的文件
-group 查找属于某用户组的文件

-size 20K 按文件大小查找20K 的文件
-size -20K 查找不大于20K的文件
-size +20K 查找大于 20K的文件
-ctime 5 五内的时间点修改过的文件
-ctime +5 五天前修改或的文件
-ctime -5 小于五天修改过的文件
-cmin 5 查看距现在5分钟时修改
-cmin -5 查看五分钟内修改的文件
-cmin +5 五分钟之前修改的文件
-perm 按权限查找
-perm 555 查找权限为555的文件
-perm -444 查找所有人 所有组 其他人 有读权限的文件
-perm /444 查找所有人 或所有组 或其他人 至少有一个有读权限的文件

③ Linux find 命令详解

find 命令的基本结构如下:
find [paths] [expression] [actions]

find 命令接受一个或多个 路径 ( paths )作为搜索范围,并在该路径下 递归 地搜索。即检索完指定的目录后,还会对该目录下的子目录进行检索,以及子目录下的子目录。。。直到到达目录树底部。

默认情况下(不带任何搜索条件),find 命令会返回指定目录下的 所有文件 ,所以常常需要通过特定的 expression 对结果进行 筛选

find 命令默认的 action 是将所有检索结果打印至标准输出。可以通过自定义 action ,让 find 命令对搜索到的结果执行特定的操作。

这里先不做详细解释,简单地测试下 find 命令:

find 命令中的 -name 选项可以根据文件名称进行检索( 区分大小写 )。如需要忽略文件名中的大小写,可以使用 -iname 选项。

-name 和 -iname 两个选项都支持 wildcards 。如:

find /usr -name '*.txt' 查找 /usr 目录下所有文件名以 .txt 结尾的文件
find /usr -name '????' 查找 /usr 目录下所有文件名刚好为 4 个字符的文件

有些时候,你需要在搜索时匹配某个文件或目录的 完整路径 ,而不仅仅是匹配文件名。可以使用 -path 或 -ipath 选项。

如查找 /usr 下所有文件名以 .txt 结尾的文件或目录,且该文件的父目录必须是 src 。可以使用以下命令:
find /usr -path '*/src/*.txt'

如果只想搜索得到文件 目录,即不想它们同时出现在结果中。可以使用 -type 选项指定文件类型。

-type 选项最常用的参数如下:

find /usr -type d -name 'python*' 检索 /usr 下所有文件名以 python 开头的 目录

find 命令支持 -empty 选项用来检索 为空 的文件或目录。空文件即文件里没有任何内容,空目录即目录中没有任何文件或子目录。

find ~ -type d -empty 检索用户主目录下所有的空目录

find 命令也允许用户对当前的匹配条件进行 “反义” (类似于 逻辑非 操作)。

如需要检索 /usr 下所有文件名 以 .txt 为后缀的文件。可以使用以下命令:
find /usr -type f ! -name '*.txt'

也可以“翻转”任何其他的筛选条件,如:
find /usr -type f ! -empty 检索 /usr 下所有内容不为空的文件

为了检索归属于特定用户的文件或目录,可以使用 -user 选项。

find / -type f -user starky 检索根目录下所有属主为 starky 的文件

类似于 -user 选项, -group 选项则可以根据文件或目录的 属组 进行检索。

有些时候,需要根据文件创建或修改的时间进行检索。

Linux 系统中,与文件相关联的时间参数有以下三种:

与此对应的是 find 命令中的 -mtime , -atime 和 -ctime 三个选项。

这三个选项的使用遵循以下示例中的规则:

find /usr -type f -mtime 2 检索 /usr 下两天前被修改过的文件

如果觉得 -mtime 等选项以 为单位时间有点长,还可以使用 -mmin , -amin , -cmin 三个选项:
find /usr -type f -mtime +50 -mtime -100 检索 /usr 下 50 到 100 天之前修改过的文件
find /usr -type f -mtime 2 -amin 5 检索 /usr 下两天前被修改过且 5 分钟前又读取过的文件

-size 选项允许用户通过文件大小进行搜索(只适用于文件,目录没有大小……)。

表示文件大小的单位由以下字符组成:

另外,还可以使用 + 或 - 符号表示 大于 小于 当前条件。

find / -size +1G 检索文件大小高于 1 GB 的文件

find 命令可以使用 -perm 选项以文件权限为依据进行搜索。

如需要检索 /usr 目录下权限为 rwxr-xr-x 的文件,可以使用以下命令:
find /usr -perm u=rwx,g=rx,o=rx

搜索 /usr 目录下所有权限为 r-xr-xr-x (即系统中的所有用户都只有读写权限)的文件和目录,可以使用以下命令:
find /usr -perm a=rx

很多时候,我们只想匹配文件权限的一个 子集 。比如,检索可以直接被任何用户执行的文件,即只关心文件的执行权限,而不用管其读写权限是什么。

上述的需求可以通过以下命令实现: find / -type f -perm /a=x
其中 a=x 前面的 / 符号即用来表示只匹配权限的某个子集(执行权限),而不用关心其他权限的具体设置。

-perm 选项也支持数字形式的文件权限标记。

find /usr -perm 644 搜索 /usr 目录下权限为 644 (即 rwxr-xr-x )的文件

find 命令默认是以 递归 的方式检索项目的,这有时候会导致得到的结果数量非常巨大。可以使用 -maxdepth 限制 find 命令递归的层数。

find / -maxdepth 3 搜索时向下递归的层数最大为 3

在之前的例子中有出现多个搜索条件的 组合 以及对某个搜索条件的 反转
实际上 find 命令支持 “and” “or” 两种逻辑运算,对应的命令选项分别是 -a 和 -o 。通过这两个选项可以对搜索条件进行更复杂的组合。

此外还可以使用 小括号 对搜索条件进行 分组 。注意 find 命令中的小括号常需要用 单引号 包裹起来。因小括号在 Shell 中有特殊的含义。

如检索 /usr 下文件名以 python 开头且类型为目录的文件
find /usr -type d -name 'python*'

该命令等同于:
find /usr -type d -a -name 'python*'

更复杂的组合形式如:
find / '(' -mmin -5 -o -mtime +50 ')' -a -type f

-delete 选项可以用来删除搜索到的文件和目录。

如删除 home 目录下所有的空目录:
find ~ -type d -empty -delete

-exec 选项可以对搜索到的结果执行特定的命令。

如需要将 home 目录下所有的 MP3 音频文件复制到移动存储设备(假设路径是 /media/MyDrive ),可使用下面的命令:
find ~ -type f -name '*.mp3' -exec cp {} /media/MyDrive ''

其中的 大括号 ( {} )作为检索到的文件的 占位符 ,而分号( ; )作为命令结束的标志。因为分号是 Shell 中有特殊含义的符号,所以需要使用单引号括起来。
每当 find 命令检索到一个符合条件的文件,会使用其完整路径取代命令中的 {} ,然后执行 -exec 后面的命令一次。

另一个很重要的用法是,在多个文件中检索某个指定的字符串。
如在用户主目录下的所有文件中检索字符串 hello ,可以使用如下命令:
find ~ -type f -exec grep -l hello {} ''

创建 Gzip 格式的压缩文件的命令为: tar -czvf filename.tar.gz <list of files>

现在假设需要将用户主目录下所有的 MP3 文件添加到压缩包 music.tar.gz 中,直观的感觉是,其命令应为如下形式:
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} ''

实际情况是,这样得到的 music.tar.gz 其实只包含一个 MP3 文件。
原因是 find 命令 每次 发现一个音频文件,都会再执行一次 -exec 选项后面的压缩命令。导致先前生成的压缩包被覆盖。

可以先让 find 命令检索出所有符合条件的音频文件,再将得到的 文件列表 传递给后面的压缩命令。完整的命令如下:
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} +

如果想浏览搜索到的文件(目录)的详细信息(如权限和大小等),可以直接使用 -ls 选项。

find / -type file -size +1G -ls 浏览所有 1G 以上大小的文件的详细信息

A Guide to the Linux “Find” Command
find 命令手册 : man find

④ find 命令的 7 种用法

可以很肯定地说, find 命令是 Linux 后台开发人员必须熟知的操作之一,除非您使用的是 Windows Server。

对于技术面试,它也是一个热门话题。让我们看一道真题:

这种情况很常见,但令人惊讶的是,并非每个开发人员都能在面试中清楚地写出这个命令。

答案:首先我们需要使用 cd 命令进入对应的目录,然后,命令如下:

如果你还没有完全理解上面的命令,完全不用担心。本文将介绍 find 命令的 7 个实际用途,您最终会掌握它。如果您已经知道了,那么阅读这篇文章对您来说将是一个很好的回顾。

0. 按名称或正则表达式查找文件

让我们从最简单的用法开始。要按特定名称搜索文件,命令如下:

如何查找所有格式为 pdf 的书籍?使用正则表达式:

默认情况下,find 命令会搜索常规文件,但最好进行指定( -type f )以使所有内容更清晰:

1. 查找不同类型的文件

除了搜索常规文件外,我们还可以通过指定 -type 选项来搜索其他类型的文件。

例如目录:

或者符号链接:

2.按指定的时间戳查找文件

要按指定的时间戳搜索文件,我们需要知道 Linux 系统中的 3 个不同的时间戳:

所以,正如开头提到的面试题,要搜索 atime 超过一年的文件,我们可以编写如下命令:

如果我们需要查找 mtime 正好是 5 天前的文件,请不要包含 + ,因为它的意思是“大于”。

显然, + 表示“大于”, - 表示“小于”。所以我们可以搜索 ctime 在 5~10 天前的文件:

3. 按大小查找文件

-size 选项使我们能够按指定大小查找文件。我们可以将其计量单位指定为以下约定:

类似于按时间戳查找文件,+ 表示“大于”,- 表示“小于”。例如,要查找大小为 10 MB ~ 1 GB 的文件:

4. 按权限查找文件

合理控制文件的权限是 Linux 管理员的一项重要任务。find 命令的 -perm 选项可以帮助我们按指定权限查找文件:

例如,上面的命令会搜索所有具有 777 权限的文件,这意味着一个文件对其持有者、组和所有用户具有所有的读、写和可执行权限。


5. 按所有权查找文件

这个任务很简单。我们可以使用 -user 选项指定用户名。例如,以下命令将查找所有属于 yang 的文件:

6. 在找到文件后执行命令

在大多数情况下,我们希望在找到我们需要的文件后进行后续操作。例如将其删除,或检查它们的详细信息等等。-exec 命令使这些所有事情变得更加容易。

现在,要了解如何使用它,让我们回到之前提到的面试问题:

上述命令在 -exec 选项后是 rm -rf,其用于删除文件。{} 是用于查找结果的占位符。


注意:占位符 {} 非常重要,尤其是在您想删除文件时。因为,如果您不使用它,该命令将对所有文件执行(而不是您刚刚通过 find 命令找到的文件)。


做一个尝试,请在终端上执行以下两个命令,并检查它们的结果有何不同:


一个使用占位符:

另一个不使用:


-exec 选项后面的命令必须以分号(;)结束。众所周知,转义字符用于去除单个字符的特殊含义。在 Linux 中,反斜杠 用作转义字符。所以我们将它用于分号字符。


总结

看完 find 命令的 7 种用法后,开始提到的面试题现在好像很容易解决了。你现在可以直接写下它的答案并将其解释清楚吗?

⑤ linux中find命令的使用方法有哪些

find命令的参数及使用命令:
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
#-print 将查找到的文件输出到标准输出
#-exec command {} \; —–将查到的文件执行command操作,{} 和 \;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户
例:find . -name .svn | xargs rm -rf
====================================================
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查GIN: 0px">
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio %; #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录

=====================================================
$find ~ -name "*.txt" -print #在$HOME中查.txt文件并显示
$find . -name "*.txt" -print
$find . -name "[A-Z]*" -print #查以大写字母开头的文件
$find /etc -name "host*" -print #查以host开头的文件
$find . -name "[a-z][a-z][0–9][0–9].txt" -print #查以两个小写字母和两个数字开头的txt文件
$find . -perm 755 -print
$find . -perm -007 -exec ls -l {} \; #查所有用户都可读写执行的文件同-perm 777
$find . -type d -print
$find . ! -type d -print
$find . -type l -print
$find . -size +1000000c -print #查长度大于1Mb的文件
$find . -size 100c -print # 查长度为100c的文件
$find . -size +10 -print #查长度超过期作废10块的文件(1块=512字节)
$cd /
$find etc home apps -depth -print | cpio -ivcdC65536 -o /dev/rmt0
$find /etc -name "passwd*" -exec grep "cnscn" {} \; #看是否存在cnscn用户
$find . -name "yao*" | xargs file
$find . -name "yao*" | xargs echo "" > /tmp/core.log
$find . -name "yao*" | xargs chmod o-w
======================================================
find -name april* 在当前目录下查找以april开始的文件
find -name april* fprint file 在当前目录下查找以april开始的文件,并把结果输出到file中
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l 在/tmp下查找名为wa开头且类型为符号链接的文件
find /home -mtime -2 在/home下查最近两天内改动过的文件
find /home -atime -1 查1天之内被存取过的文件
find /home -mmin +60 在/home下查60分钟前改动过的文件
find /home -amin +30 查最近30分钟前被存取过的文件
find /home -newer tmp.txt 在/home下查更新时间比tmp.txt近的文件或目录
find /home -anewer tmp.txt 在/home下查存取时间比tmp.txt近的文件或目录
find /home -used -2 列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find /home -user cnscn 列出/home目录内属于用户cnscn的文件或目录
find /home -uid +501 列出/home目录内用户的识别码大于501的文件或目录
find /home -group cnscn 列出/home内组为cnscn的文件或目录
find /home -gid 501 列出/home内组id为501的文件或目录
find /home -nouser 列出/home内不属于本地用户的文件或目录
find /home -nogroup 列出/home内不属于本地组的文件或目录
find /home -name tmp.txt -maxdepth 4 列出/home内的tmp.txt 查时深度最多为3层
find /home -name tmp.txt -mindepth 3 从第2层开始查
find /home -empty 查找大小为0的文件或空目录
find /home -size +512k 查大于512k的文件
find /home -size -512k 查小于512k的文件
find /home -links +2 查硬连接数大于2的文件或目录
find /home -perm 0700 查权限为700的文件或目录
find /tmp -name tmp.txt -exec cat {} \;
find /tmp -name tmp.txt -ok rm {} \;
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
查当前目录下的所有普通文件
# find . -type f -exec ls -l {} \;

-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
查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出
=================================================
在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime +5 -exec -ok rm {} \;
=================================================
查询当天修改过的文件
[root@book class]# find ./ -mtime -1 -type f -exec ls -l {} \;
=================================================
查询文件并询问是否要显示
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {} \;
< ls … ./classDB.inc.php > ? y
-rw-r–r– 1 cnscn cnscn 13709 1月 12 12:22 ./classDB.inc.php
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {} \;
< ls … ./classDB.inc.php > ? n
[root@book class]#
=================================================
查询并交给awk去处理
[root@book class]# who | awk ’{print $1"\t"$2}’
cnscn pts/0
=================================================
awk—grep—sed
[root@book class]# df -k | awk ‘{print $1}’ | grep -v ’none’ | sed s"/\/dev\///g"
文件系统
sda2
sda1
[root@book class]# df -k | awk ‘{print $1}’ | grep -v ’none’
文件系统
/dev/sda2
/dev/sda1

1)在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名
A) find /tmp -name "*.h" | xargs -n50 grep SYSCALL_VECTOR
B) grep SYSCALL_VECTOR /tmp/*.h | cut -d’:' -f1| uniq > filename
C) find /tmp -name "*.h" -exec grep "SYSCALL_VECTOR" {} \; -print
2)find / -name filename -exec rm -rf {} \;
find / -name filename -ok rm -rf {} \;
3)比如要查找磁盘中大于3M的文件:
find . -size +3000k -exec ls -ld {} ;
4)将find出来的东西拷到另一个地方
find *.c -exec cp ‘{}’ /tmp ‘;’
如果有特殊文件,可以用cpio,也可以用这样的语法:
find dir -name filename -print | cpio -pdv newdir
6)查找2004-11-30 16:36:37时更改过的文件
# A=`find ./ -name "*php"` | ls -l –full-time $A 2>/dev/null | grep "2004-11-30 16:36:37"

⑥ 如何掌握find命令用法

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

⑦ linux find命令怎么用

你可以在超级用户状态 # 下,使用 find 命令查找指定的文件,举例如下:
#find / -name "*.c" -print <cr>
其中:/ 代表从根目录开始进行查找;"*.c" 代表要进行查找的文件类型为 C 语言源程序(*.c),-print 选项代表将查找到的结果输出到屏幕上。
该命令是最、最、最实用的文件查找命令,别的就可以举一反三了。例如:你如果想从 /usr 目录开始进行查找,那么就将 / 更改成:/usr 即可。

⑧ 如何使用find命令查找文件

1、按名称或正则表达式查找文件。要按特定名称搜索文件,命令如下:

find . -name test.txt
如何查找所有格式为 pdf 的书籍?使用正则表达式:

find ./yang/books -name "*.pdf"
默认情况下,find 命令会搜索常规文件,但最好进行指定(-type f)以使所有内容更清晰:

find ./yang/books -type f -name "*.pdf"
2、查找不同类型的文件
除了搜索常规文件外,我们还可以通过指定-type选项来搜索其他类型的文件。例如目录:

find . -type d -name "yang*"
或者符号链接:

find . -type l -name "yang*"
3、按指定的时间戳查找文件
要按指定的时间戳搜索文件,我们需要知道 Linux 系统中的 3 个不同的时间戳:

访问时间戳(atime):最后一次读取文件的时间。

修改时间戳 (mtime):文件内容最后一次被修改的时间。

更改时间戳 (ctime):上次更改文件元数据的时间(如,所有权、位置、文件类型和权限设置)

所以,正如开头提到的面试题,要搜索atime超过一年的文件,我们可以编写如下命令:

find . -type f -atime +365
如果我们需要查找 mtime 正好是 5 天前的文件,请不要包含 +,因为它的意思是“大于”。

find . -type f -mtime 5
显然,+ 表示“大于”,- 表示“小于”。所以我们可以搜索 ctime 在 5~10 天前的文件:

find . -type f -ctime +5 -ctime -10
4、按大小查找文件
-size选项使我们能够按指定大小查找文件。我们可以将其计量单位指定为以下约定:

b:512 字节块(默认)

c:字节

w:双字节字

k:KB

M:MB

G:GB

类似于按时间戳查找文件,+表示“大于”,-表示“小于”。例如,要查找大小为 10 MB ~ 1 GB 的文件:

find . -type f -size +10M -size -1G
5、按权限查找文件
合理控制文件的权限是 Linux 管理员的一项重要任务。find命令的-perm选项可以帮助我们按指定权限查找文件:

find . -type f -perm 777
例如,上面的命令会搜索所有具有 777 权限的文件,这意味着一个文件对其持有者、组和所有用户具有所有的读、写和可执行权限。

6、按所有权查找文件
这个任务很简单。我们可以使用 -user 选项指定用户名。例如,以下命令将查找所有属于 yang 的文件:

find -type f -user yang
7、在找到文件后执行命令
在大多数情况下,我们希望在找到我们需要的文件后进行后续操作。例如将其删除,或检查它们的详细信息等等。-exec命令使这些所有事情变得更加容易。

阅读全文

与find命令使用相关的资料

热点内容
项目经理叫醒程序员 浏览:342
autocad旋转命令 浏览:660
手机版wpsoffice怎么打包文件夹 浏览:579
在成都学车用什么app 浏览:818
grep命令管道 浏览:426
java修改重启 浏览:567
单片机供电方案 浏览:770
airpodspro一代怎么连接安卓 浏览:218
豌豆荚app上有什么游戏 浏览:283
公路商店app标签选什么 浏览:338
linuxoracle命令行登录 浏览:227
android深度休眠 浏览:171
php微信开发例子 浏览:845
医得app登录密码是什么 浏览:142
spring开发服务器地址 浏览:411
服务器上如何查看服务器的端口 浏览:678
单片机服务器编译 浏览:770
单口usb打印机服务器是什么 浏览:859
战地五开服务器要什么条件 浏览:956
在word中压缩图片大小 浏览:255