在linux下使用find指令查询目录与档案的速查笔记(代码片段)

tealex tealex     2022-12-11     661

关键词:

在 Linux 平台下找档案不外乎使用威力强大的 find 命令,威力强大的背后就是有一点点学习曲线,不过整体上来说还算简单,因此想写一篇文章留下备忘,让自己日后可以快速查阅参考。

【 基本语法】

查询档案名称 (也可以查询「目录名称」,其中 * 是万用字元)

find $HOME -name '*.mp3'

注 1 : $HOME 是 Linux 下的一个环境变数,预设指向执行帐号的 HOME 目录

查询档案名称 (不区分大小写)

find /etc -iname 'Network'

指定只要搜寻「档案」名称

find /var/log -iname '*.log' -type f

指定只要搜寻「目录」名称

find /etc -iname 'apache2' -type d

补充说明:可用的–type 参数值如下

b block (buffered) special

c character (unbuffered) special

d directory (一般目录)

p named pipe (FIFO)

f regular file (一般档案)

l symbolic link

s socket

D door (Solaris)

找寻所有档案大小大于 50MB 的档案

find /var -type f -size +50M

注 1 : 不加上–name 参数即代表搜寻所有档案

找寻所有档案大小小于 50MB 的档案

find /var -type f -size -50M

寻找超过 7 天没有被存取或修改过的档案 (判断档案存取时间)

find $HOME -type f -atime +7

寻找曾经在 7 天内被存取或修改过的档案 (判断档案存取时间)

find $HOME -type f -atime -7

寻找超过 10 分钟没有被存取或修改过的档案 (判断档案存取时间)

find $HOME -type f -amin +10

寻找曾经在 10 分钟内被存取或修改过的档案 (判断档案存取时间)

find $HOME -type f -amin -10

寻找档案建立时间已超过 30 天的档案

find $HOME -type f -ctime +30

寻找特定使用者的档案 (以帐号名称 tom 为例)

find $HOME -type f -user tom

【 进阶应用】

删除 30 天以上未经存取过的暂存档案 ( 注意: 以下指令最后一个分号 (? 前一定要加上反斜线 )

find /tmp -type f -atime +30 -print -exec rm -f '' \\;

注 1 : 加上–print 是为了让被删除的档案档名一并显示在画面上,这个参数可以省略
注 2 : 使用–exec 会让查询到的每一个档案路径代入’'位置,一个档案会执行一遍 rm 命令

删除 30 天以上未经存取过的暂存档案 ( 使用 xargs 当成单一命令的参数 )

find /tmp -type f -print0 | xargs -0 rm -v

注 1 : 加上–print0 是为了让输出的结果不以「断行字元」分隔,而改以 null 为结果的分隔字元
注 2 : 使用 xargs 命令加上–0 是为了让传入的资料以 null 字元当成参数的分隔 注 3 : 使用 rm 命令加上–v 是为了能显示出被删除的档案名称,这个参数可以省略 注 4 : 使用 xargs 会将所有 find 命令查到的档案转换成 rm 的参数列,如果档案过多可能会执行失败! 注 5 : 使用 xargs 可确保后面的程式 (rm) 只执行一次,所以理论上执行速度较快!

相同参数需输入多笔并且以「或」逻辑运算时要用–o 参数串接起来

例 1:同时找两种档名样式的档案

find $HOME -name '*.mp3' -o -user '*.ogg'

例 2:同时找两个拥有者的档案

find /usr/ local -user user1 -o -user user2

【 注意事项】

  • 使用万用字元时务必加上单引号 (’)

    !!以下是错误示范!!

  • [user1@server ~]# find $HOME -name *.txt
    find: paths must precede expression
    Usage: find [path…][expression]

❤『面试知识集锦100篇』2.linux篇丨shell基础命令全集,我奶奶的速查手册!!❤(代码片段)

目录第一部分:基础知识一、Linux 文件基本属性二、Linux磁盘管理2.1df命令2.2du命令2.3磁盘检验三、Linux 文件与目录管理3.1处理目录的常用命令ls(列出目录)cd(切换目录)pwd(显示目前所在的目录)mkdir(创建新目录)rmdir(删除空的目... 查看详情

find命令tar命令gzip命令(代码片段)

...到一个大文件中,也可以把档案文件解开以恢复数据。tar使用格式tar[参数]打包文件名文件tar命令很特殊,其参数前面可以使用“-”,也可以不使用。参数含义-c生成档案文件,创建打包文件-v列出归档解档的详细过程,显示进... 查看详情

linux操作系统下查找文件的几种方法

...ind<指定目录><指定条件><指定动作>“;比如使用find命令搜索在根目录下的所有interfaces文件所在位置,命令格式为”find/-name\'interfaces\'“使用locate搜索linux系统中的文件,它比find命令快。因为它查询的是数据库(/var/l... 查看详情

『面试知识集锦100篇』2.linux篇丨shell基础命令全集,我奶奶的速查手册!!

目录第一部分:基础知识一、Linux 文件基本属性二、Linux磁盘管理2.1df命令2.2du命令2.3磁盘检验 查看详情

linux的档案权限与目录管理

一、使用者与群组1、档案拥有者  由于Linux是个多人多任务的系统,常常可能有多人同时使用这部主机来进行工作,为了考虑每个人的隐私以及每个人喜好的工作环境而建立档案拥有者。2、群组概念  群组用于团队管理,... 查看详情

linux最常用的指令-查找删除文件系列

一、find使用find./-nametest.c#在根目录下查找文件test.c,表示在当前目录查找find.-name'test*'#表示当前目录下查找文件名开头是字符串‘test’的文件find/-amin-10#查找在系统中最后10分钟访问的文件(accesstime)find/-atime-2#查找在系... 查看详情

目录结构

...作的指令。  在/bin底下的指令可以被root不一般账号所使用,主要有:cat,chmod,chown,date,mv,mkdir,cp,bash等等常用的指令。/boot  这个目录主要在放置开机会使用到的档案,包括Linux核心档案以及开机选单不开机所需配置文件等等... 查看详情

ls(linux中ls命令)详细资料大全

ls指令是Linux下最常用的指令之一。ls命令将每个由Directory参数指定的目录或者每个由File参数指定的名称写到标准输出,以及您所要求的和标志一起的其它信息。如果不指定File或Directory参数,ls命令显示当前目录的内容。基本介... 查看详情

linux操作系统利用find命令如何查找某个目录的位置

1、linux命令如果记不得,可以使用man命令来查看某个命令的使用。但对应初学者往往看不懂或者不知道什么场景下使用2、输入find-name*history,意思是查询当前目录及子目录下所有以history结尾的文件3、输入find-namemysql*,意思是查... 查看详情

linux中在当前目录下查找某个文件。

...找即可。参考技术A在Linux中查找文件有两种方法。一种是使用find命令,另外一种是使用locate命令。1、Find命令使用Linuxfind命令可以用不同的搜索标准如名字、类型、所属人、大小等来搜索目录树。基本语法如下:# find path... 查看详情

chown-r在linux里是啥含义,我一直搞不清楚.

...者加以改变。一般来说,这个命令只能由系统管理者(root)使用,一般用户没有权限来改变别人的文件的拥有者,也没有权限可以将自己的文件的拥有者改设为别人。只有系统管理者(root)才有这样的权限。chown命令的完整使用方式... 查看详情

linux中如何查找文件夹?

参考技术Alinux中使用find命令来查找文件夹,使用find/-name要查找的文件夹名-typed方式来查找。find命令说明语法find(选项)(参数)选项-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;-anewer<参考文件或... 查看详情

linux命令中which、whereis、locate有啥区别?

...。它能做到实时查找,精确查找,但速度慢。  find的使用格式如下:  #find[指定目录][指定条件][指定动作]  指定目录:是指所要搜索的目录和其子目录。如果不指定,则默认为当前目录。  指定条件:是指所要搜索的... 查看详情

linux学习第一集(纯干货)

基础命令1.mkdir(创建新目录)在目录/mnt下建立文件夹usbmkdir/mnt/usb2.find(目录索引文件)(1)根据文件名查找查找一个文件名是test.py的文件find/-nametest.py(文件中的“/”表示整个硬盘) (2)根据部分文件名称查找find/-name ... 查看详情

linux中如何在指定目录下查找文件?

...位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。  语法格式:  findpath-option[-print][-exec-ok... 查看详情

在linux中,我在根目录下创建了一个文件夹,用find命令查不到自己新创建的文件夹。

...的范围之内,你可以将路径位置添加到环境变量中,或者使用locate命令也是可以的~~追问还是不太明白您能说的更详细些吗追答你可以直接指定查找的目录也是可以的。因为Linux系统的find指令查看的是当前的环境变量中的路径。... 查看详情

一linux指令手册及知识入门(代码片段)

目录速查一、指令总结lspwdcdtouchmkdirrm&rmdirmancp-拷贝mv-改名&移动cat&tacmorelesshead&tail(打印)grep(行过滤)echodatecal(日历查询)find(查找)whichwhereiszip 查看详情

第二周(12.17--12.23)

 1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。mkdir  //创建目录-p  确保目录名称存在,不存在的就建一个。-v  创建目录并显示详细信息touch  //创建文本-a  改变档案的读取时间记... 查看详情