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.pswp.cn/news/382882.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/382882.shtml
英文地址,請注明出處:http://en.pswp.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…