Linux命令之find

find是一个在目录下查找文件目录的工具,而且不同于locate它是精确查找,所以对于内容很多很大的目录它的速度会比较慢,但是它很强大,强大到我必须在这里总结一下。

find命令格式:

find [选项] 目录 [匹配模式] [处理动作];其中目录是必须存在的,因为他是在目录中查询文件目录的呀。

匹配条件:

按文件名来查找:

-name 匹配模式:在指定的目录下查找符合匹配模式的文件目录。

按文件的属主;属组;UID;GID查找:

-user USERNAME:在指定的目录下查找属主为USERNAME的文件目录。

-group GROUPNAME:在指定的目录下查找属组为GROUPNAME的文件目录。

-UID UIDNUM:在指定的目录下查找属主UID为UIDNUM的文件目录。

-GID GIDNUM:在指定的目录下查找属组GID为GIDNUM的文件目录。

-nouser:在指定的目录下查找没有属主的文件目录。

-nogroup:指定的目录下查找没有属组的文件目录。

按文件的类型来查找:

-type -f:在指定的目录下查找普通文件。

-type -d:在指定的目录下查找目录。

-type -l:在指定的目录下查找链接文件。

-type -b:在指定的目录下查找块文件。

-type -c:在指定的目录下查找字符型文件。

-type -s:在指定的目录下查找套接字文件。

-type -p:在指定的目录下查找管道文件。

按文件的时间戳来查找:

时间:

按天:

atime:文件最后一次被修改元数据(inod)的时间。

ctime:文件最后一次被访问的时间。

mtime:文件最后一次被修改数据(block)。

按分:

amin:文件最后一次被修改元数据(inod)的时间。

cmin:文件最后一次被访问的时间。

mmin:文件最后一次被修改数据(block)。

他们后面接的时间表示方式有:

[-atime -ctime -mtime] #:从执行find命令开始之前的#天到#+天的文件目录。

[-atime -ctime -mtime] +#:从执行find命令开始之前的#天到#天之前。

[-atime -ctime -mtime] -#:从#天到执行find命令之间的文件目录。

按文件的权限分:

权限的表示方式:

-perm mode(###):只匹配文件的权限为###的文件目录(精确权限查找)。

例如:755:只匹配文件的权限为rwxr-xr-x的文件目录。

-perm /mode(/###):匹配文件的属主拥有#权限或者属组拥有#权限或者其他人拥有#

权限的文件目录。(三个#只是代表数字并不一定相同)

例如:/111:匹配属主拥有x或者属组拥有x或者x的文件目录。但是需要注意的是

文件只要拥有这个权限就行,至于其他的权限是什么都匹配、例如;700也匹配。

-perm -mode(-###):匹配文件的属主拥有#权限并且属组拥有#权限并且其他用户拥有#

权限的文件目录。

例如:-444:匹配属主拥有r且属组拥有r去其他用户拥有r权限的文件目录。一样

需要注意的是只要拥有这个权限就满足条件,并不是精确的完整的权限。

处理动作:

-ls(exex ls -l {} \;):把find找到的文件目录用传给ls -l长格式输出出来。

-print:把find找到的文件目录打印出来,默认就会。

-fls 文件路径:把find找到文件目录记录到这个指定的文件中。

-delede:把find找到的文件目录删除。

-exec 命令 {} \;使用这个时候记住find把找到的文件目录都放在{}中,因此就可以用命令

来操作find找到的文件目录,注意{}后面必须一个空格而且-exec的终结标志是

“;”,但是很多“;”都有特殊意义,因此在它前面加上“\”来转义。

find 。。。| xargs 命令:将find找到的文件目录通过管道给xargs,然后xargs将其交给它

后面的命令来操作(与-exec不一样的是xrags是分批处理这些文件目录,而exec

是一次处理完,这样当文件目录太多太大的时候就会托底系统性能)。

逻辑:

-a:与

-o:或

-not:非

-not (-user USERNAME1 -a USERNAME2):文件目录属于USERNAME1或者USERNAME2。

-not (-user USERNAME1 -o USERNAME2):文件目录不属于USERNAME1也不属于USERNAME2。

至于匹配模式就是使用通配符和正则表达式来匹配就行。

-

时间: 2024-10-24 21:47:11

Linux命令之find的相关文章

linux命令格式,获取帮助及其目录结构简要理解

我们都知道,一台计算机要是没通电,和一堆废铁没什么区别.那么,通电开机进入系统后,会进入交互界面,等待用户操作,人与计算机交互界面有两种: GUI:图形用户接口.如我们平时使用的Windows  ,linux的X window,有KDE和GOME. CLI:命令行接口,使用的SHELL类型有bash ,csh,tcshell,zshell等. 例如:[[email protected] ~]# commandbin root:当前登录的用户名. dxlcentOS:当前主机的主机名.@是一个分隔

linux 命令 及学习进度综合整理

linux  命令  及学习进度综合整理 pwd 查看当前所在位置 cd  跳转到什么什么目录 ls  显示所有文件和目录 ls -l  显示目录详细信息 cd ..  返回上一级 vi  lnany.txt  创建一个文件 vi  .lnany.txt    创建一个隐藏文件 vim 是 vi 的升级版 功能更多 出现 -bash: vim: command not found 的解决办法 i. 那么如何安裝 vim 呢?输入rpm -qa|grep vim 命令, 如果 vim 已经正确安裝

9个使用时必须时刻警惕的Linux命令

Linux shell/terminal命令非常强大,即使一个简单的命令就可能导致文件夹.文件或者路径文件夹等被删除.为了避免这样的事情发生,我们应该时刻注意PHP代码&命令,今天为大家带来9个必须时刻警惕的Linux命令&代码. Linux shell/terminal 命令非常强大,即使一个简单的命令就可能导致文件夹.文件或者路径文件夹等被删除. 在一些情况下,Linux 甚至不会询问你而直接执行命令,导致你丢失各种数据信息. 一般来说在 Web 上推荐新的 Linux 用户执行这些命

Linux命令之scp

Linux命令之scp 功能说明 scp 是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且 scp传输是加密的.可能会稍微影响一下速度.当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来.另 外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了.虽然 rsync比scp会快一点,但当小文件众多的情况 下,rsync会导致硬盘I/O非常高

linux命令--top命令&free命令

top命令是用来查看系统性能的工具,能够实时显示各个进程的状况,包括进程ID.内存占用率.CPU占用率等. top - 23:12:04 up 79 days,  8:14,  1 user,  load average: 0.00, 0.01, 0.05 Tasks: 573 total,   2 running, 571 sleeping,   0 stopped,   0 zombie Cpu(s):  0.2%us,  0.4%sy,  0.0%ni, 99.5%id,  0.0%wa,

linux命令学习笔记

操作文件和目录: copy: $ cp file1 file2 $ cp -r dir1 dir2 move: $ mv file .. $ mv file dir/ rename: $ mv file1 file2 $ mv dir1 dir2 # dir2如果存在,则为移动操作 remove: $ rm file $ rm -r dir 创建文件: $ touch a.txt $ >a.txt 创建目录: $ mkdir dir 查看文件: #一般 $ cat file #查看文件类型: $

cv:显示Linux命令运行进度

cv: 显示 cp.mv 等命令的进度 2014-07-14 By toy Posted in Apps Edit on GitHub 在 Linux 系统中 , 大多数命令从来都是信奉 “ 沉默是金 ” 的准则 , 所以当我们利用 cp 复制文件的时候并不能看到所谓的进度条 . 如果你在意这一点 , 那么不妨来用用 cv. cv 是 Coreutils Viewer, 它能够显示传输数据的进度 , 包括百分比 . 大小 . 以及速率等信息 .cv 支持 coreutils 中的基本命令 , 比

三个网站让你成为Linux命令行高手

[转载自http://www.linuxeden.com/html/news/20091119/69183.html] Linux的命令行是通向Linux高级应用的必经之路,Linux系统管理员.开发者都是学习对象.Susan Linton向我们推荐了三个学习Linux命令行的网站,现在介绍给大家: 1. LinuxCommand LinuxCommand是一个学习Linux命令行最好的网站之一.网站分为:学习Shell.写Shell脚本.脚本库.超级MAN页面. 2. O'Reilly的Lin

linux 命令解析2

基本命令  uname -a -s hostname显示主机名若是要永久生效,则编辑以下文件  #vim /etc/sysconfig/network    ssh远程登录#ssh 10.1.1.54 (是以root用户登录的)  #ssh [email protected](是以tom身份登录)  #ssh -Y 10.1.1.54(可以启动图形界面的远程登陆) scp远程拷贝  #scp 10.1.1.54:/etc/passwd /tmp/test(将目的地址10.1.1.54上的/etc

Windows下使用linux命令

我参阅了这份文章: 让windows cmd也用上linux命令 原文时间有点久了,Cygwin也更新了... 所以我的做法简单了很多... 到Cygwin官网下载安装包:https://cygwin.com/install.html 一路安装下去... 假如安装路径是:C:\cygwin64 那么就在环境变量Path后面加上C:\cygwin64\bin 好了,完成了,没别的了 觉得太简单了?那我补充下,Cygwin官网下载下来的不能叫安装包,叫引导程序比较合适.英文好的可以看该页面的Q&A,