你知道怎麼用find嗎?

2.23 find命令java

[root@MOMOCO-02 ~]# which lsnode

alias ls='ls --color=auto'linux

/usr/bin/ls程序員

【咱們以前說過這個命令能夠搜索一個命令是否有別名,也能夠找到他的絕對路徑在哪裏。他是在環境變量PATH裏面找的】vim

[root@MOMOCO-02 ~]# echo $PATHbash

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/binless

[root@MOMOCO-02 ~]# whereis lsfrontend

ls: /usr/bin/ls /usr/share/man/man1/ls.1.gzssh

【這也是一個搜索的命令,他搜索的不是特別全。他是在一個庫裏面的找的這個庫可能天天在指定的時間更新。只有你更新了纔可能找到你想要的一些東西。】ide

[root@MOMOCO-02 ~]# mlocate

-bash: mlocate: 未找到命令

【這也是一個搜索的命令,和whereis比較像】

[root@MOMOCO-02 ~]#  yum install -y mlocate

【安裝這個命令】

[root@MOMOCO-02 ~]# locate ls

locate: 沒法執行 stat () `/var/lib/mlocate/mlocate.db': 沒有那個文件或目錄

【他會提示你你沒有/var/lib/mlocate/mlocate.db庫你無法搜索,這個庫通常會在早上的4點生成】

[root@MOMOCO-02 ~]# updatedb

【手動生成/var/lib/mlocate/mlocate.db庫】

[root@MOMOCO-02 ~]# ls

123  2_1.txt  2.txt  3  3.txt  3.txt~  anaconda-ks.cfg

[root@MOMOCO-02 ~]# locate 123

/root/123

/root/123/12

/root/123/gyblinux

/root/123/gyblinux.txt

/root/123/12/1.txt

/root/123/12/3

/usr/lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/media/dvb-frontends/cx24123.ko.xz

/usr/lib64/gconv/IBM1123.so

/usr/share/man/man1/perl5123delta.1.gz

/usr/share/perl5/pod/perl5123delta.pod

【這個命令搜索的不是特別精準。他會把你想搜索的字符所有列出來】


小知識:快捷鍵

crtl+l【清屏】

ctrl+c【取消】

ctrl+d【登出客戶端】

ctrl+u【刪除光標前面的東西】

ctrl+a【把光標移動到最前面】

ctrl+e【把光標移動到最後面】


find命令格式:find 路徑 選項


[root@MOMOCO-02 ~]# find /etc/ -name sshd_config

/etc/ssh/sshd_config

【當咱們不知道一個配置文件的路徑時,咱們能夠用名字-name 名字去搜索。】

[root@MOMOCO-02 ~]# find /etc/ -name sshd*

/etc/ssh/sshd_config

/etc/systemd/system/multi-user.target.wants/sshd.service

/etc/sysconfig/sshd

/etc/pam.d/sshd

【若是你不徹底知名字是啥?你能夠用*通配符模糊搜索。】

[root@MOMOCO-02 ~]# find /etc/ -type f -name sshd*

/etc/ssh/sshd_config

/etc/sysconfig/sshd

/etc/pam.d/sshd

[root@MOMOCO-02 ~]# find /etc/ -type d -name sshd*

【-type表示你想要搜索的東西是什麼類型的。後面加d表明目錄,加f表明文件,加l表明軟鏈接文件,加b表明塊設備文件,加c表明設備文件】

[root@MOMOCO-02 ~]# find /etc/ -type l

/etc/pki/ca-trust/source/ca-bundle.legacy.crt

/etc/pki/java/cacerts

/etc/pki/tls/cert.pem

........

/etc/rc2.d

/etc/rc3.d

/etc/rc4.d

/etc/rc5.d

/etc/rc6.d

/etc/pam.d/smtp

/etc/pam.d/system-auth

/etc/pam.d/postlogin

/etc/pam.d/password-auth

/etc/pam.d/fingerprint-auth

/etc/pam.d/smartcard-auth

/etc/ssl/certs

/etc/grub2.cfg

blob.png

[root@MOMOCO-02 ~]# find /dev/ -type c

/dev/vsock

/dev/vcsa6

/dev/vcs6

/dev/vcsa5

/dev/vcs5

/dev/vcsa4

.......

/dev/null

/dev/mem

/dev/vga_arbiter

blob.png

[root@MOMOCO-02 ~]# find /dev/ -type b

/dev/sr0

/dev/sda3

/dev/sda2

/dev/sda1

/dev/sda

blob.png


-mtime、-ctime、-atime

[root@MOMOCO-02 ~]# stat 2.txt 

  File: '2.txt'

  Size: 19        Blocks: 8          IO Block: 4096   regular file

Device: 803h/2051dInode: 33617208    Links: 2

Access: (0700/-rwx------)  Uid: (    0/    root)   Gid: (    0/    root)

Context: unconfined_u:object_r:admin_home_t:s0

Access: 2017-12-21 21:30:22.825933901 +0800

Modify: 2017-12-21 21:29:51.200993908 +0800

Change: 2017-12-21 21:34:38.596530480 +0800

 Birth: -

【詳細的顯示一個文件或目錄的信息。紅色的部分就表明-mtime、-ctime、-atime他們表明什麼那?】

[root@MOMOCO-02 ~]# chmod 700 2.txt

[root@MOMOCO-02 ~]# stat 2.txt 

  File: '2.txt'

  Size: 19        Blocks: 8          IO Block: 4096   regular file

Device: 803h/2051dInode: 33617208    Links: 2

Access: (0700/-rwx------)  Uid: (    0/    root)   Gid: (    0/    root)

Context: unconfined_u:object_r:admin_home_t:s0

Access: 2017-12-21 21:30:22.825933901 +0800

Modify: 2017-12-21 21:29:51.200993908 +0800

Change: 2017-12-23 10:52:19.760809458 +0800

 Birth: -

【當咱們改了文件的權限的時候Change的時間就發生了變化。-ctime記錄的是一個文件的大小,所屬主所屬組,時間,權限等相關的信息】

[root@MOMOCO-02 ~]# echo "qqqqqqq" > 2.txt

【echo什麼就會顯示什麼,>表明把echo顯示的東西重定向到2.txt中】

[root@MOMOCO-02 ~]# echo "asfcacasc"

asfcacasc

[root@MOMOCO-02 ~]# echo "asfcacac"

asfcacac

[root@MOMOCO-02 ~]# stat 2.txt 

  File: '2.txt'

  Size: 8         Blocks: 8          IO Block: 4096   regular file

Device: 803h/2051dInode: 33617208    Links: 2

Access: (0700/-rwx------)  Uid: (    0/    root)   Gid: (    0/    root)

Context: unconfined_u:object_r:admin_home_t:s0

Access: 2017-12-21 21:30:22.825933901 +0800

Modify: 2017-12-23 10:55:37.736303129 +0800

Change: 2017-12-23 10:55:37.736303129 +0800

 Birth: -

【當咱們把文件內容改了以後你會發現ModifyChange的時間都發生了變化。-mtime記錄的是文件的內容,當你的文件內容發生變化了他的大小一會變化,因此-ctime一會跟着變化。】

[root@MOMOCO-02 ~]# cat 2.txt 

qqqqqqq

[root@MOMOCO-02 ~]# stat 2.txt 

  File: '2.txt'

  Size: 8         Blocks: 8          IO Block: 4096   regular file

Device: 803h/2051dInode: 33617208    Links: 2

Access: (0700/-rwx------)  Uid: (    0/    root)   Gid: (    0/    root)

Context: unconfined_u:object_r:admin_home_t:s0

Access: 2017-12-23 11:08:22.948276279 +0800

Modify: 2017-12-23 10:55:37.736303129 +0800

Change: 2017-12-23 10:55:37.736303129 +0800

 Birth: -

[root@MOMOCO-02 ~]# date

Sat Dec 23 11:08:58 CST 2017

【當咱們訪問了這個文件的時候他的Access會更新】


[root@MOMOCO-02 ~]# find / -type f -mtime -1

【查詢一天之內更改過的文件,-1表明一天之內+1表明一天之前。記住沒有等於一天的。】

[root@MOMOCO-02 ~]# stat /var/cache/man/es/index.db

  文件:"/var/cache/man/es/index.db"

  大小:16384     塊:32         IO 塊:4096   普通文件

設備:803h/2051d Inode:50716285    硬連接:1

權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)

環境:system_u:object_r:mandb_cache_t:s0

最近訪問:2017-12-23 13:03:13.959642624 +0800

最近更改:2017-12-23 13:03:13.957642539 +0800

最近改動:2017-12-23 13:03:13.958642582 +0800

建立時間:-

[root@MOMOCO-02 ~]# date

2017年 12月 23日 星期六 13:08:47 CST

[root@MOMOCO-02 ~]# stat /var/log/dmesg 

  文件:"/var/log/dmesg"

  大小:121810     塊:240        IO 塊:4096   普通文件

設備:803h/2051d Inode:16777285    硬連接:1

權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)

環境:system_u:object_r:var_log_t:s0

最近訪問:2017-12-23 10:01:42.830000219 +0800

最近更改:2017-12-23 10:01:42.887000222 +0800

最近改動:2017-12-23 10:01:42.887000222 +0800

建立時間:-


看個小範圍的:

[root@MOMOCO-02 ~]# find /etc/ -type f -mtime -1

/etc/resolv.conf

/etc/group

/etc/gshadow

/etc/tuned/active_profile

[root@MOMOCO-02 ~]# stat /etc/gshadow

  文件:"/etc/gshadow"

  大小:384       塊:8          IO 塊:4096   普通文件

設備:803h/2051d Inode:17239462    硬連接:1

權限:(0000/----------)  Uid:(    0/    root)   Gid:(    0/    root)

環境:system_u:object_r:shadow_t:s0

最近訪問:2017-12-23 10:17:10.281516726 +0800

最近更改:2017-12-23 10:17:10.283516785 +0800

最近改動:2017-12-23 10:17:10.284516815 +0800

建立時間:-


咱們也能夠加上-name選項:

[root@MOMOCO-02 ~]# find /etc/ -type f -mtime -1

/etc/resolv.conf

/etc/group

/etc/gshadow

/etc/tuned/active_profile

[root@MOMOCO-02 ~]# find /etc/ -type f -mtime -1 -name *.conf

/etc/resolv.conf


上面咱們用到的這麼多選項他們之間都是而且的意思,那咱們能他們是或者的意思嗎?固然能夠:


[root@MOMOCO-02 ~]# find /etc/ -type f -o -mtime -1 -o -name *.conf

【咱們在選項中加上-o他們就是或者的意思了,幾乎沒有人會這麼用的】


還記得以前咱們想找有幾個相同的inode號的文件嗎?咱們如今就能夠用find查找

[root@MOMOCO-02 ~]# ln /root/2.txt  /tmp/2.txt.doc

【咱們硬連接一個文件,由於硬連接的文件他們的inode號是相同的】

[root@MOMOCO-02 ~]# ls -l 2.txt 

-rwx------. 3 root root 8 12月 23 10:55 2.txt

[root@MOMOCO-02 ~]# ls -i 2.txt 

33617208 2.txt

[root@MOMOCO-02 ~]# find / -inum 33617208

/root/2_1.txt

/root/2.txt

/tmp/2.txt.doc

【能夠看到咱們找到這三個相同inode號的文件路徑,-inum 選項就是查找相同inode號的】


剛剛咱們介紹-mtime一天之內的了,那咱們還用沒有補這個時間更小的那?

[root@MOMOCO-02 ~]# find /etc/ -type f -mmin -120

/etc/resolv.conf

【-mmin這個表明的是分鐘,-120表明的是120分鐘之內的。】

[root@MOMOCO-02 ~]# ls -l /etc/resolv.conf

-rw-r--r--. 1 root root 54 12月 23 13:01 /etc/resolv.conf

[root@MOMOCO-02 ~]# date

2017年 12月 23日 星期六 13:44:45 CST

【能夠看到這個文件是在120分鐘之內。每次使用ls -l去查看咱們感受太麻煩了,那有沒有比較簡單的方法讓他直接顯示出來。咱們看下面】

[root@MOMOCO-02 ~]# find /etc/ -type f -mmin -120 -exec ls -l {} \;

-rw-r--r--. 1 root root 54 12月 23 13:01 /etc/resolv.conf

【-exec 後面加上咱們的要求,{}表明每個選項。{}後面一個空格 ,\;這一個必需要加上】

[root@MOMOCO-02 ~]# find /etc/ -type f -mmin -300

/etc/resolv.conf

/etc/group

/etc/gshadow

/etc/tuned/active_profile

[root@MOMOCO-02 ~]# find /etc/ -type f -mmin -300 -exec mv {} {}.bak \;

[root@MOMOCO-02 ~]# find /etc/ -type f -mmin -300 

/etc/group.bak

/etc/gshadow.bak

/etc/resolv.conf.bak.bak

/etc/tuned/active_profile.bak

【咱們能夠批量的更名字,這個選項還能夠不少功能】


在root目錄下找到小於10k的文件或者目錄

[root@MOMOCO-02 ~]# find /root/ -size -10k 

/root/

/root/.bash_logout

/root/.bash_profile

/root/.bashrc

/root/.cshrc

/root/.tcshrc

/root/anaconda-ks.cfg

/root/.ssh

/root/.ssh/id_rsa

/root/.ssh/id_rsa.pub

/root/.ssh/known_hosts

/root/.ssh/authorized_keys

/root/.viminfo

/root/.lesshst

/root/3.txt~

/root/3.txt

/root/3

/root/123

/root/123/12

/root/123/12/1.txt

/root/123/12/3

/root/123/gyblinux.txt

/root/123/gyblinux

/root/2_1.txt

/root/2.txt

/root/1234

/root/1234/12

/root/1234/12/1.txt

/root/1234/12/3

/root/1234/gyblinux.txt

/root/1234/gyblinux

/root/23

[root@MOMOCO-02 ~]# find /root/ -size -10k -exec ls -ld {} \; 

dr-xr-x---. 6 root 0 276 12月 23 14:11 /root/

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

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

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

-rw-r--r--. 1 root 0 100 12月 29 2013 /root/.cshrc

-rw-r--r--. 1 root 0 129 12月 29 2013 /root/.tcshrc

-rw-------. 1 root 0 3470 12月 19 21:40 /root/anaconda-ks.cfg

drwx------. 2 root 0 80 12月 14 17:41 /root/.ssh

-rw-------. 1 root 0 1675 12月 14 17:25 /root/.ssh/id_rsa

-rw-r--r--. 1 root 0 396 12月 14 17:25 /root/.ssh/id_rsa.pub

-rw-r--r--. 1 root 0 175 12月 14 17:37 /root/.ssh/known_hosts

-rw-r--r--. 1 root 0 1224 12月 14 17:41 /root/.ssh/authorized_keys

-rw-------. 1 root 0 608 12月 16 08:42 /root/.viminfo

-rw-------. 1 root 0 41 12月 20 12:26 /root/.lesshst

-rw-r--r--. 1 root 0 0 12月 20 12:33 /root/3.txt~

-rw-rw-r--. 1 root 0 65 12月 20 13:18 /root/3.txt

drwxr-xr-x. 2 root 0 6 12月 21 16:56 /root/3

drwxr-xr-x. 3 root 0 52 12月 21 20:23 /root/123

drwxr-xr-x. 3 root 0 28 12月 21 19:49 /root/123/12

drwxr-xr-x. 2 root 0 6 12月 21 19:39 /root/123/12/1.txt

lrwxrwxrwx. 1 root 0 7 12月 21 19:49 /root/123/12/3 -> /root/3

lrwxrwxrwx. 1 root 0 8 12月 21 20:18 /root/123/gyblinux.txt -> gyblinux


[root@MOMOCO-02 ~]# find /root/ -size +10M -exec ls -ld {} \; 

[root@MOMOCO-02 ~]# find /root/ -size +10m -exec ls -ld {} \; 

find: 無效的 -size 類型「m」

【咱們也能夠用單位兆可是M必定要大寫,不能夠小寫。沒有字節單位b】


2.26文件後綴名

小知識:在咱們linux系統中文件、目錄後者命令都是區分大小寫的

[root@MOMOCO-02 ~]# ls

123  1234  2_1.txt  23  2.txt  3  3.txt  3.txt~  anaconda-ks.cfg

[root@MOMOCO-02 ~]# LS

-bash: LS: 未找到命令

在linux下咱們的文件是沒有類型的。

好比咱們系統裏面有###.gz的文件在系統裏面認爲是壓縮文件,可是不能所有肯定由於咱們能夠編輯一個文件保存爲1.gz這個那卻是壓縮文件嗎?


咱們linux文件的後綴名就是爲了方便咱們程序員分辨一個文件是什麼類型那些是相同的文件

相關文章
相關標籤/搜索