linux-----强大的find

j_0029.gif我又回来了。哈哈。今天我们来说一下linux中的另一个强大的find命令,灰常重要,灰常重要,灰常重要。显而易见,find就是对某一个文件或者目录的查找喽。但是它的一个显著的特点就是:一般放在后台执行,从整个文件系统中遍历,当然这样的话,它查找的速度就相对比较慢了。

find也有很多的命令,我来一一介绍一下吧。

1.find + pathname(想要查找的目录)

eg1:

wKioL1c1-s-wUqpfAAAw8pO5KtY998.png

find test:找出test目录下的所有文件

eg2:

wKiom1c9FZ_SpJaPAAAna_zHwvI551.png


find /home -path "*c":查找出/home目录下以c结尾的文件


eg3:

wKiom1c9YiOg9SEbAABUc8PKOdo828.png


find ./ -name *.txt:找出当前路径下文件后缀为.txt的文件


eg4:

wKiom1c9ZKqij7FfAABjVzGc7Ms254.png


find ../ -path '../test*' -name *.txt:在上级目录下名为'test'及子目录下找出以.txt后缀的文件

find ../ -path '../test*' -name xu:在上级目录下名为'test'及子目录下找出名为xu的文件


2.find + -user + 文件属主(按文件属主查找文件)

eg:

wKiom1c9EQLgGyF3AABtpnQ3SDU239.png

find -user root:找出user为root权限的所有文件


3.find + -perm + 文件权限(按文件权限查找文件)

eg:

wKiom1c9FEeRi8fPAABWcGWVsyA377.png

find -perm 644:权限为644的文件

find -perm 755:权限为755的文件


4.find + -group + 权限(按所属组的权限查找文件)

eg1:

wKioL1c9aAHgp7DhAACyO6vTCMw827.png


find -group root:找出所属组权限为root的文件

find -group admin:找出所属组权限为admin的文件


5.path与prune的结合(prune是删除,减去的意思哦)

wKioL1c9afyDfmAuAAB87334LrI894.png

find ./ -path './xu.txt*' -a -prune -o -name *.txt -print:除去xu.txt及子目录下找后缀名为.txt的文件

find ./ -path './xu*' -a -prune -o -name *.txt -print:除去xu及子目录下找后缀名为.txt的文件,虽然这里没有直接包含xu.txt,但是xu*的意思包含了.txt的文件,所以没有找到,当然就没有显示出

find ./ -path './test*' -a -prune -o -name *.txt -print:除去test及子目录下找后缀名为.txt的文件,不包含xu.txt,所以就正确的输出了后缀名为.txt的文件


6.find + -mtime + -n(+n)  按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime选项,但它们都和-mtime选项相同。

atime的意思是access time,即文件的最近的一次访问时间,+n意思为查找n天以前的文件,-n为查找n天以内的文件。

find命令加选项-ctime,这里的-ctime是change time。

wKiom1c9bf-xqOifAAA3H5ar3H4135.png

find -mtime -1:找出一天以内的文件

find -mtime +1:找出距现在一天以前的文件


7.-nogroup  查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

wKioL1c9eZ-BE22EAADnjTTSkh4565.png



groupadd test:创建一个组test。

chgrp test test.c:改变所属组。

groupdel test:删除test组,使其变为无效组。

find -nogroup:找到无效组的文件。

8.find + -nouser   查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。

wKiom1c9e7TReor7AACk4iFq2i4859.png


useradd ooo:添加用户。

chown ooo test.c:修改test.c的用户名为ooo。

userdel ooo:删除用户ooo,使其成为无效的用户。

find -nouser:查找无效的用户。


9.find + -newer file1  查找更改时间比文件file1新的文件。

eg1:

wKiom1c9qDuCkVJ2AABRf6l-5c4140.png


eg2:


wKiom1c-vsXQsYbhAAFsR9sE90g967.png

 

 find . -newer file1 ! -newer file2:找出比file1新,比file2旧的文件。

10.find + -type  查找某一类型的文件,诸如:

b -块设备文件。

d - 目录。 

c - 字符设备文件。

p - 管道文件。 

l - 符号链接文件。

f - 普通文件。 

wKiom1c9x_fAcfD4AAEjYDHVc40426.png


11.find + -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。


wKiom1c9yJvypadeAAApICXUnrw463.png


12.find + -mount:在查找文件时不跨越文件系统mount点。


wKioL1c9ycXAvEoeAAAdbgFPEo0302.png


13.find + -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。


wKioL1c9yhvgWYsCAAAjfrZOw7Y989.png

 

今天的find就说到这里咯。当然还有些没有写上去,完了还会补充的哦。大家有什么补充的,意见或建议都可以提哦,也可以直接评论。希望亲们多多关注哦。j_0059.gifj_0059.gif



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言模拟实现标准库函数之strchr()

strchr() 查找字符串s中首次出现字符c的位置 char * my_strchr(char *str1, char str2) {while (*str1 ! str2 && *str1 ! NULL){str1;}return str1; }int main() {char string[17];char *ptr, c r;strcpy(string, "Thisisastring");ptr my_strchr(string…

python 多人连接mysql 进行事务操作 对mysql加锁与释放锁

python 多人连接mysql 对mysql进行事务操作 对mysql加锁与释放锁 下面这个是user1代码块 # -*- coding: utf-8 -*- # user1 import pymysql import timeconn pymysql.connections.Connection(host"localhost", userdebian-sys-maint, passwordwL5wsDKDub4gT2EU…

C语言模拟实现标准库函数之strcmp()

strcmp() C/C函数&#xff0c;比较两个字符串 设这两个字符串为str1&#xff0c;str2&#xff0c; 若str1str2&#xff0c;则返回零&#xff1b; 若str1<str2&#xff0c;则返回负数&#xff1b; 若str1>str2&#xff0c;则返回正数。 char * my_strcmp(char *key,…

linux之task_struct

每个进程中都有一个进程控制块--PCB。PCB--维护进程相关的信息。然而&#xff0c;linux内核的进程控制块就是task_struct结构体&#xff0c;它可以保存进程的信息。 所有运行在系统里的进程都以task_struct链表的形式存在内核里。 每个进程都将它的信息放在task_struct结构体…

python 用元类 type 实现对数据库的ORM 映射

python 实现对数据库的ORM 映射 如果使用pymysql 操作数据库 不借助框架的话&#xff0c;频繁写sql语句, 的确比较麻烦 这里借助 type 元类 对 数据表类实现了 与mysql之间的 映射 直接上代码 import pymysqldef conn_database_execute(sql_str):conn pymysql.connect(host…

C语言模拟实现标准库函数之memcpy()

memcpy&#xff08;&#xff09; 1.如果我们需要对一个数组初始化&#xff0c;把数组的内容全部置0&#xff0c;那么能不能用strcpy() int main() {char arr1[10] { 0 };char arr2[10] " abcdefg ";strcpy(arr2, arr1);system("pause");return 0; } 我…

说说堆及堆排序

堆&#xff1a;是一种数组对象&#xff0c;它可以被看成是一种二叉树结构。 我们把堆的二叉树存储方式分为两种&#xff1a;即大堆和小堆。那么问题来了&#xff0c;什么大堆&#xff1f;什么是小堆&#xff1f; 大堆&#xff1a;让每个父节点的值都大于孩子节点的值。 小堆…

运算符优先级 速查表

运算符优先级 优先级【高到低】&#xff1a; 第一级&#xff1a; 圆括号【&#xff08;&#xff09;】、下标运算符【[]】、分量运算符的指向结构体成员运算符【->】、结构体成员运算符【.】 第二级&#xff1a; 逻辑非运算符【!】、按位取反运算符【~】、自增自减运…

linux--几种常见的进程调度算法

进程调度&#xff1a;在操作系统中调度是指一种资源分配&#xff0c;因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法。操作系统管理了系统的有限资源&#xff0c;当有多个进程(或多个进程发出的请求)要使用这些资源时&#xff0c;因为资源的有限性&#xff0c;必…

指针数组和数组指针和函数指针

文章目录1.指针数组和数组指针1.int *p1[10];2.int (*p2)[10];2.函数指针char *(*fun1)(char * p1,char *p2)函数指针的概念函数指针的作用&#xff1a;例子1 .调用方式例子2&#xff1a;&#xff08;带注释&#xff09;例子33.做题的小技巧1.指针数组和数组指针 1.int *p1[10…

使用虚拟环境virtualenv 创建虚拟环境出现PermissionError: [Errno 13] Permission denied:

使用虚拟环境virtualenv 创建虚拟环境出现PermissionError: [Errno 13] Permission denied: 原因&#xff1a;虚拟环境安装的目录所属用户非当前用户 解决办法&#xff1a;将目录及其文件的所有者改为当前用户 解决命令&#xff1a;sudo chown -R 当前用户 待更改用户的目录/ …

linux之父子进程的输出

首先&#xff0c;我们来回忆一下父进程与子进程&#xff0c;前几节讲了如何创建子进程&#xff0c;像这样的&#xff0c;pid_t id fork(); 这样我们就创建好了一个子进程&#xff0c;然而fork()函数的返回值是什么呢&#xff1f;这里要记住&#xff1a;子进程返回0&#xff0c…

linux---谈谈vfork和fork的区别及exit与return

fork()&#xff1a;创建子进程的函数&#xff0c;是大家比较熟悉的吧。pid_t id fork(); 这里的vfork();也是创建子进程的函数。现在我们来剖析一下它们吧。 第一例&#xff1a; 先看一个fork()的例子哦。 对于fork()而言&#xff0c;创建子进程成功后直接打印出父子进程执…

在MySQL数据库建立多对多的数据表关系

转载自 https://blog.51cto.com/13145200724/1370753

C语言模拟实现标准库函数之qsort()

qsort 编译器函数库自带的快速排序函数。 void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*)); 参数解释&#xff1a; void*base-待排序数组首地址size_t num-数组中待排序元素数量size_t width-各元素的占用空间大小int(__cde…

django contrib 包简介

转自 https://www.cnblogs.com/tianboblog/p/6955297.html

linux之管道

管道&#xff08;PIPE&#xff09;是linux中一个重要的通信方式&#xff0c;在进程中&#xff0c;我们通过从一个进程中读取到的数据转到另一个进程中的写数据中&#xff0c;这时就要有不同的进程之间共享同一份资源&#xff0c;就是所谓的进程间通信。由于进程的特点是资源独占…

把student a am i 变成 i am a student(两种方法)

文章目录#student a am i 变成 i am a student##方法1&#xff1a;指针#include <stdlib.h> #include <stdio.h> #include <string.h>void fanw(char *l, char *r) {char* left l;char* right r;char temp;while (left < right){temp *left;*left *ri…

关掉占用 某端口的进程

sudo fuser -k 8000/tcp 这样和端口8000相关的进程就都关了。

linux之多线程(1)

我们之前讲了进程&#xff0c;今天我们重新认识另外一个概念---线程。我们首先会想到的是进程和线程有什么区别和联系&#xff0c;对吧&#xff1f;进程是由程序执行起来&#xff0c;跑在操作系统的&#xff0c;是系统进行资源分配和调度的基本单位。进程具有资源独占性&#x…