日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

day10-linux查找find命令 介绍

發(fā)布時間:2024/1/18 linux 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 day10-linux查找find命令 介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

上一次我們學(xué)習(xí)了關(guān)于linux的用戶權(quán)限方面的管理:

? ? 在使用linux系統(tǒng),有時候需要對文件進行查找,而find命令比較全面:支持使用文件名、文件大小、所屬組/主、是否為空、訪問時間、修改時間等:

1下面在介紹find命令前,先介紹幾個系統(tǒng)的查找命令:which\localte\whereis:

1.1:?which:用來搜索命令(會在PATH里面來尋找路徑)-所以只能查找命令類:

1 2 3 4 5 [root@localhost?~] #?which?cp?????????????#用which來查找cp的路徑: alias? cp = 'cp?-i' ???????? /usr/bin/cp [root@localhost?~] #?echo?$PATH???????????#會提前在生成的PATH路徑里來查找: /usr/local/sbin : /usr/local/bin : /usr/sbin : /usr/bin : /root/bin

1.2 whereis:搜索命令,會列出配置文件的位置,輸出很模糊:

[root@localhost ~]#?whereis cp ? ? ? ? ? ? ? ?

cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz?

1.3:mlocalte:用來搜索文件/目錄和命令,但是搜索的結(jié)果比較模糊:

第一次使用時:會提示此命令存在:可以用mlocate來安裝:

yum ? ?install ? -y ? mlocate

工作原理:locate會在事先生成的一個數(shù)據(jù)庫中去尋找(數(shù)據(jù)庫用來統(tǒng)計所有命令和文件),據(jù)說會在每天凌晨4點來自動更新統(tǒng)計:

第一次使用則需要手動生成一下:用updatedb命令

用法:localte查找會列出所有相關(guān)的文件/目錄和命令等:

1 2 3 4 5 6 [root@localhost?~] #?locate?ls????????????#會匹配到很多選項: /boot/grub2/i386-pc/blscfg .mod /boot/grub2/i386-pc/cbls .mod /boot/grub2/i386-pc/command .lst /boot/grub2/i386-pc/crypto .lst /boot/grub2/i386-pc/fs .lst

2、linux系統(tǒng)的快捷鍵使用統(tǒng)計:

ctrl+l(小寫L) ? ? ? ? ? #清除屏幕內(nèi)容,并將光標(biāo)定位到第一行:

ctrl+d ? ? ? ? ? ? ? ? ? ? #退出當(dāng)前終端,相當(dāng)于exit或者logout.

ctrl+c ? ? ? ? ? ? ? ? ? ? #暫停當(dāng)前輸入,并跳到下一行:

ctrl+u ? ? ? ? ? ? ? ? ? ?#刪除光標(biāo)前的內(nèi)容:

ctrl+d ? ? ? ? ? ? ? ? ? ?#刪除光標(biāo)后的內(nèi)容(一個字符一個字符的刪除):

ctrl+k ? ? ? ? ? ? ? ? ? ?#刪除光標(biāo)后的內(nèi)容(全部刪除)

ctrl+e ? ? ? ? ? ? ? ? ? ?#光標(biāo)移動到行尾:end

ctrl+a ? ? ? ? ? ? ? ? ? #光標(biāo)移動到行首:

3、find命令介紹:具體使用格式如下:

find ? 路徑 ? 條件?? ?==== ? ?find ? ?/etc/ ? ? -type ?d ??

用法一:find基于名稱搜索:可以支持通配符*。

1 2 3 4 [root@localhost?~] #?find????/etc/????-name????"ssh*"???????#支持名稱來搜索: /etc/ssh /etc/ssh/ssh_config /etc/ssh/ssh_host_rsa_key

用法二:find基于文件類型搜索: ? find ? /etc/ ? -type ?類型

d(目錄) ? ? ? f(文件) ? ? l(連接文件) ? ? ?s(socket文件) ? b(塊設(shè)備文件) ?c(串口設(shè)備文件)

1 2 3 [root@localhost?~] #?find?/etc/?-type?d??-name?ssh*????#查到是目錄的并且是sshd. /etc/ssh /etc/selinux/targeted/active/modules/100/ssh

find支持?-o?選項,是或者的意思:多個參數(shù)之間要用?-o?選項來隔開:

1 2 3 4 5 [root@localhost?~] #?find?/etc/?-type?d??-o?-name?ssh*??#目錄或者是ssh文件都會被打印出來 /etc/ /etc/grub .d /etc/pki /etc/pki/rpm-gpg

并且: find?/etc/?-type?d ?-name "ssh*" ? ?不加-o則是并且的意思:

3.2 find的類型還有三個time: ??atime ? ? mtime ? ? ?ctime

那么我們?nèi)绾尾榭粗齻€time: ? ?stat命令

1 2 3 4 5 6 7 8 [root@localhost?~] #?stat?2.txt??????#用stat后加文件名稱來查看: ?? 文件: "2.txt" ?? 大小:0???????????????塊:0??????????IO?塊:4096???普通空文件 設(shè)備:803h /2051d???????? Inode:33574980????硬鏈接:1 權(quán)限:(0644 /-rw-r--r-- )??Uid:(????0/????root)???Gid:(????0/????root) 最近訪問:2017-10-28?01:58:56.757868054?+0800?????????? #atime(aacces?time) modify:2017-10-28?01:58:56.757868054?+0800?????????? #mtime(modify?time) change:2017-10-28?01:58:56.757868054?+0800?????????? #ctime?(change?time)

atime:訪問時間:讀取和執(zhí)行文件時修改: ? ?#ls ? -lu ?filename ? 列出文件的atime

mtime:更改文件內(nèi)容時間,如寫入內(nèi)容: ? ? ? #ls ? -l ?filename ? 列出文件的mtime

ctime:更改inode時間,(包含屬性、權(quán)限、文件大小、鏈接等): #ls ?-lc filename ?文件的ctime.

注意:文件內(nèi)容的改動,會同時更改mtimectime,因為內(nèi)容的內(nèi)容會造成inode信息改變:

ctime改變,mtime不會改變,如修改了文件的權(quán)限,而不更改文件的名稱:

用法一:查找出一天以內(nèi)的文本: 參數(shù): -mtime ? -1

1 2 3 4 5 [root@localhost?~] #?find?/?-type?f?-mtime?-1?#只查找是文件類型的,文件內(nèi)容更改時間在1天內(nèi)的文件: /proc/fb /proc/fs/xfs/xqm /proc/fs/xfs/xqmstat /proc/bus/pci/00/00 .0

用法二:查找出一天以外的文本: 參數(shù): -mtime ?+1

[root@localhost ~]# find / -type f?-mtime?+1??#只查找是文件類型的,文件內(nèi)容更改時間在1天以外的文件:

/boot/grub2/device.map

/boot/grub2/i386-pc/gcry_rmd160.mod

/boot/grub2/i386-pc/acpi.mod

/boot/grub2/i386-pc/gcry_rsa.mod

ctime和atime的用法也是同mtime一樣如此:

用法三:find還有有一個常用用法:查找硬鏈接:

分析:硬鏈接是根據(jù)inode號來區(qū)分,也就是我們要找到inode號相同的,即為鏈接文件:

1 2 3 [root@localhost?~] #?find?/?-inum?33574980?????#查找inode號相同的文件: /root/2 .txt /tmp/2 .txt.bak

用法四:find可以以分鐘為來查找文件:mmin +1(一小時外) ? ? ?mmin ?-1(一小時內(nèi))

[root@localhost ~]# find /root -type f?-mmin -60?? ? ?#查找1小時以內(nèi)的文件:

/root/2.txt

另外find支持直接打印和列出:有以下兩種方法實現(xiàn):輸出是一樣的。

方法一:通過xargs來實現(xiàn):如下:

[root@localhost ~]#?find /root -type f -mmin -60 |xargs ls -l

-rw-r--r-- 2 root root 6 10月 28 02:26 /root/2.txt

方法二:通過-exec來實現(xiàn):如下:

[root@localhost ~]#?find /root/ -type f -mmin -60 -exec ls -l {} \;

-rw-r--r-- 2 root root 6 10月 28 02:26 /root/2.txt

用法五:find支持直接打印后對文件進行操作,如修改名稱和刪除文件:如下:

直接查找類型是文件并且在150分鐘內(nèi),直接重命名為*.bak.

1 2 3 4 5 6 7 [root@localhost?~] #?find??/root/??-type?f?-mmin??-150?-exec?mv?{}??{}.bak?\; [root@localhost?~] #?find?/root/?-mmin?-150 /root/ /root/yuanhh /root/yuanhh/1 .bak /root/2 .txt.bak /root/1 .txt.bak

?用法六:find支持以文件的大小來查找:支持k,M,G

[root@localhost ~]#?find /root/ -type f -size?-10k?-exec ls -lh {} \;

-rw-r--r--. 1 root root 18 12月 29 2013 /root/.bash_logout

-rw-r--r--. 1 root root 176 12月 29 2013 /root/.bash_profile

-10k(則表示10k) ?+10M(則表示10M)

?整理:find常用命令小整理:

-name:名稱搜索,可支持通配符,如"yum*"等.

-mtime:以時間天為單位搜索,如“-5則表示5天內(nèi),+5則表示5天外”.

-type:類型搜索:文件類型:如“-type ?d”表示目錄,“! type d”表示取反,除目錄之外的文件

-size:文件大小搜索:如“-size +10M”表示大于10M,“-10M”則表示小于10M的。

-mmin:以分鐘為單位,如“-mmin ?-60”表示60分鐘以內(nèi)的文件,"+60"表示60分鐘以外的文件:

-inum:表示查找硬鏈接(后面跟inode號):如:

[root@localhost ~]# find /root/ -inum 661735

-perm:表示查找權(quán)限(后更要查找的權(quán)限):如下:

[root@localhost ~]# find /root/ -perm +0644

4.文件名的后綴名:

?linux下的文件/目錄的后綴名可以自定義:

但是我們?yōu)榱朔奖銋^(qū)分,會寫成類似如下的后綴名稱:

? .txt: 文本文檔:

? .gz : 壓縮文件:

? .conf : 配置文件:










本文轉(zhuǎn)自 芬野 51CTO博客,原文鏈接:http://blog.51cto.com/yuanhaohao/2053223,如需轉(zhuǎn)載請自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的day10-linux查找find命令 介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。