本文作者:心月

linux系統中文件查找命令的高級用法

心月IT博客 2019-06-12
摘要:隨著電腦里的文件越來越多,或者,有些文件被擱置了很久,突然要用了,但一時又想不起來這個文件放哪了,這時候如果可以使用文件查找的方式來定位文件,那將是一件非常幸福的事。windows系統中有內置搜索或者第三方工具,但linux這種命令行式的系統中又改如何查找文件呢?

1、find查找命令

    語法格式:

        find [路徑] [選項] [操作]

        選項:

        -name:根據文件名查找,區分大小寫;-iname:忽略大小寫
        -perm:根據文件權限查找
        -prune:該選項可以排除某些查找目錄,通常和-path一起使用,用于將特定目錄排除在搜索條件之外
        -user:根據文件屬主查找
        -group:根據文件屬組查找
        -mtime -n|+n:根據文件更改時間查找;-n:n天內;+n:n天前
        -mmin -n|+n:根據文件更改時間查找;-n:n分鐘內;+n:n分鐘前
        -nogroup:查找無有效屬組的文件
        -nouser:查找無有效屬主的文件
        -newer file1 ! file2:查找更改時間file1新但比file2舊的文件
        -type:按文件類型查找
        -size -n|+n:按文件大小查找,-n:小于n;+n:大于n
        -mindepth n:從n級子目錄開始搜索
        -maxdepth n:最多搜索到n級子目錄


          選項可以連續寫

find /etc -mtime +10 -user root    //(查找etc下10天前修改的屬于root的文件)
find . -path ./test_1 -prune -o -path ./test -prune -o -type f //(查找當前目錄下除test_1、test外的文件)


        操作:

            -print:輸出

            -exec :對搜索到的文件執行特定的操作;

                -exec [操作命令] {} \; //'{}'表示前面find選項的結果


 find /var/log/ -name '*log' -mtime +7 -exec rm -rf {} \; (把log下修改時間在7天以上的.log文件刪除)

            -ok:功能和-exec一樣,不過-ok會有提示    


        邏輯運算:

        -a:與
        -o:或
        -not|!:非



            查找包含指定內容的特定文件,并刪除:

find . -type f -name '*.txt' | xargs grep -l 'findrootx' | xargs rm -rf        //查找當前路徑下包含'findrootx'內容的txt文件
find . -name '*.txt' | xargs grep -l 'findrootx' | xargs rm -rf            //查找當前路徑下包含'findrootx'內容的txt文件

(xargs 是一個強有力的命令,它能夠捕獲一個命令的輸出,然后傳遞給另外一個命令)


2、find、locate、whereis 、which使用場景分析

    locate:

        文件查找命令,所屬軟件包mlocate

        不同于find命令是在整塊磁盤中搜索,locate命令在數據庫文件中查找

        find默認全部匹配,locate默認部分匹配


    updatedb:(更新數據庫文件,新建文件要通過updatedb更新放到數據庫文件中才可以使用locate來查找)

        更新/var/lib/mlocate/mlocate.db(默認由系統定時任務定時更新)

        所使用配置文件/etcc/updatedb.cnf            


    whereis:

        查找二進制程序文件,查找二進制程序文件的幫助文檔,查找二進制程序源代碼文件


        選項:

        -b:只返回二進制文件
        -m:只返回幫助文檔
        -s:只返回源代碼文件


    which:

        僅查找二進制程序文件

        -b:    只返回二進制文件


    命令使用場景推薦

        find:查找某一類文件,比如文件名部分一致,功能強大,速度慢
        locate:只能查找單個文件,功能單一,速度快
        whereis:查找程序的可執行文件、幫助文檔等,不常用
        which: 值查找程序的可執行文件,常用于查找程序的絕對路徑


文章版權及轉載聲明:

作者:心月 本文地址:http://www.rawkpk.live/linux/279.html發布于 2019-07-01
文章轉載或復制請以超鏈接形式并注明出處心月IT博客

分享到:
贊(

發表評論

快捷輸入:

    評論列表 (有 0 條評論,人圍觀)參與討論