Linux基礎知識——文件查找

Linux系統的核心思想之一就是一切皆文件,可想而知你要靠記憶去查找一個文件該是多么費勁;今天我們介紹幾個文件查找命令:whereis,locate,find

whereis

locate the binary, source, and manual page files for a command
【SYNOPSIS】
whereis [-bmsu] [-BMS directory...  -f] filename...
【OPTIONS】
    -b  僅查找二進制文件
    -m  僅查找man章節
    -s  僅查找源文件

locate

find file by name   locate命令與其他查找命令不同在于,它是靠查詢一張數據表的內容來查找文件位置:/var/lib/mlocate/mlocate.db而這張表是定時自動更新其內容的,新加的文件或者目錄是無法立即查詢得到的,通過命令【updatedb】命令來即時更新其數據表來獲取最新的文件保存信息
【SYNOPSIS】
locate [OPTION]... PATTERN...
【OPTION】
    -b, --basename      僅查找基名的路徑
    -c,--count      僅顯示查找到的數量
    -d,--database DBPATH    更改mlocate.db保存路徑
    -i,--ignore 忽略大小寫
    -r,--regexp 支持基本正則表達式
        --regex     支持擴展正則表達式
    -l,--limit -n LIMIT 指定顯示數量
    -P,--nofollow   不顯示鏈接指向符號檢測文件是否存在
    -L,--follow 與-P相反

find

search for files in a directory hierarchy
【SYNOPSIS】
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
【OPTIONS】
-P  Never follow    symbolic links(defualt)
-L  Follow symbolic links
-H  Do  not follow symbolic links, except while processing the command line arguments.
-nouser     無屬主
-nogroup    無屬組
-atime      訪問時間查找(天數)
        +n  n時間之前的文件
        n   n時間24小時之內訪問的時間(閉合區間)
        -n  n時間到現在的時間
-mtime      修改時間查找(天數)
-ctime      改變時間查找(天數)
-amin   (分鐘)
-mmin   (分鐘)
-cmin   (分鐘)
-user   按屬主查找
-group  按屬主查找
-perm   按權限查找
        mode    權限精確查找
        -mode   每一類用戶權限中的每一位權限符合條件即可
        /mode   任意一類用戶權限中的任意一位權限條件滿足即可
-size   按照文件大小查找
        +n  大于n的    
        n   大于等于n,小于n+1 
        -n  小于n
【EXPRESSION】
    -print  標準輸出,默認
    -ls     將查找到的文件“ls -l”,不支持alias別名命令
    -delete 將查找到的文件刪除
    -fls /PATH/TO/SOMEFILE  將查找到的文件的長格式保存至路徑
    -ok COMMAND {} \;   對查找到的內容執行COMMAND,并交互確認
    -exec COMMAND {} \; 對查找到的內容進行COMMAND
    find | xargs    find文件后執行COMMAND時,不支持長格式參數,如果參數過長會出錯,無法執行,則使用此管道命令執行

1、顯示當前系統上root、fedora、user1用戶的默認shell

grep -E "^(root|fedora|user1)" /etc/passwd |cut -d: -f1,7

2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一個小括號的行

grep "\<[[:alnum:]]*\>[(][)]" /etc/rc.d/init.d/functions

3、使用echo命令輸出一個絕對路徑,使用grep取出其基名/取出其路徑名 echo PATH |grep -o "[^/]+[[:alnum:]][[:punct:]]$" echo /var/spool/mail/root|grep -o "(/).*\1" 4、找出ifconfig命令結果中的1-255之間的數字

ifconfig |grep -E "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"

5、寫一個模式,能匹配合理的IP地址

ifconfig |grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"

6、寫一個模式,能匹配出所有的郵件地址

grep -o "[[:alnum:]]\+[[:punct:]]*[[:alnum:]]\+\>@[^[:space:]]\+[[:alnum:]]*\>" /var/spool/mail/root

7、查找/var目錄下屬主為root,且屬組為mail的所有文件或者目錄

find /var/ -user root -a -group mail -ls

8、查找當前系統上沒有屬主或者屬組的文件/查找當前系統上沒有屬主或者屬組,且最近三天內曾被訪問過的文件或者目錄

find / -nouser -o -nogroup -a -atime -3

9、查找/etc/目錄下所有用戶都有寫權限的文件

find /etc/ -perm -222 -exec ls -dl {} \;

10、查找/etc目錄下大于1M,且類型為普通文件的所有文件

find /etc -type f -a -size +1M -exec ls -dl {} \;

11、查找/etc/init.d/目錄下,所有用戶都有執行權限,且其他用戶有寫權限的文件

find /etc/init.d/ -perm -111 -a -perm -002 -exec ls -l {} \;

12、查找/usr目錄下不屬于root、bin或者hadoop的文件

find /tmp/ ! -user root -a ! -user bin -a ! -user hadoop -exec ls -l {} \;

13、查找/etc目錄下至少有一類用戶沒有寫權限的文件

find /etc/ ! -perm -222 -exec ls -l {} \;

14、查找/etc目錄下最近一周內其內容被修改過,且不屬于root或者hadoop的文件

find /etc/ -mtime -7 -a ! -user root -a ! -user hadoop -exec ls -l {} \;

原創文章,作者:396064847,如若轉載,請注明出處:http://www.www58058.com/50652

(0)
396064847396064847
上一篇 2016-10-11 14:19
下一篇 2016-10-12 08:41

相關推薦

  • 進程和計劃任務

    進程概念 內核的功用:進程管理,文件系統,網絡功能,內存管理,驅動程序,安全功能等 Process:運行中的程序的一個副本,是被載入內存的一個指令集和     進程ID(Process ID,PID)號碼被用來標記各個進程     UID,GID和SELinux語境決定對文件系統…

    Linux干貨 2016-09-13
  • 第七周作業

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;        (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; [ro…

    2017-04-05
  • alias——Linux基本命令(4)

    1.     alias別名 (1)查看、設置別名 Linux系統提供了一個有用的工具叫alias,可以讓我們將一些需要頻繁使用的但又過于冗長的命令設置一個別名,這樣一來,以后只需輸入一個簡短的別名就可以達到同樣的作用。 alias顯看當前已定義的別名   使用aliasaliname=’comm…

    2017-07-13
  • N27_第五周作業

    一、顯示當前系統上root、fedora或者user1用戶的默認shell; [root@localhost ~]# grep -E “^(root|fedora|user1)” /etc/passwd | cut -d: -f7 /bin/bash /bin/tcsh /bin/bash二、找出/etc/rc.d/init.d/fu…

    Linux干貨 2017-10-20
  • LVM 邏輯卷管理器-縮小LV容量及快照區的建立

    LVM 邏輯卷管理器-縮小LV容量 將/dev/sdb2分區抽離出來,縮小LV容量 (1)首先查看/dev/sdb2的容量大小 [root@centos6 ~]# df -h /mnt/lvm/ Filesystem        &nbs…

    Linux干貨 2016-09-19
  • MySQL-MMM安裝指南(Multi-Master Replication Manager for MySQL)

    最基本的MMM安裝必須至少需要2個數據庫服務器和一個監控服務器下面要配置的MySQL Cluster環境包含四臺數據庫服務器和一臺監控服務器,如下: function ip hostname server id monitoring host 192.168.0.10 mon – master 1 192.168.0.11 db1 1 maste…

    Linux干貨 2015-05-01

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-10-20 19:30

    這幾個工具用好了,可以大幅提高文件查找效率,這篇文章整理的非常不錯。

欧美性久久久久