(linux shell)第二章--命令之樂(一)

來源:互聯網
上載者:User

標籤:技術   exec   大於   name   at命令   大於等於   span   分享   檔案內容   

文章來自於我的個人部落格:(linux shell)第二章--命令之樂(一)   

上一章我們描寫敘述了一些linux shell中須要注意的一些文法。接下來我們開始瞭解linux shell的經常使用命令。let‘s go...

  1. cat 命令:

    cat本身表示拼接(concatenate)。cat命令有一些經常使用參數,像-n,-s等,我們以下逐一介紹:

    假設你想高速查看一個文字檔內容。就能夠使用cat命令:

    cat file

    假設你想一次查看多個檔案內容。也是在後面加上檔案路徑就可以

    cat file1 file2 file3

    假設想顯示文字檔的行號。則使用參數-n:

    cat -n file 或者 cat -n file1 file2 file3

    假設想去掉文本中的空行。則使用參數 -s:

    cat -s file 或者 cat -s file1 file2 file3 當然這裡也能夠使用tr命令來益處空白行:cat file | tr -s ‘‘;  這個tr命令的意思是說將多個分行符號當作一個分行符號來看待。

  2. find 命令:

    find命令是沿著檔案階層向下遍曆,匹配合格檔案,並運行對應的操作。

    基本的文法:

    find . -print   #列印出帶有路徑的當前檔案夾下的全部檔案路徑

      find命令也有非常多參數,我們以下來看一些經常使用參數的使用方法:

          1).依據檔案名稱或者正則表達式匹配搜尋

                find . -name "*.sh" -print   #從當前檔案夾尋找全部符合以sh結尾的檔案,並列印到終端

                

                 -name另一個相應的-iname來忽略keyword的大寫和小寫

                find . -iname "*.sh" -print

        2).依據路徑匹配

                find . -path "*test*" -print  #從當前檔案夾開始。尋找路徑首碼是test的全部路徑以及列印出這些檔案夾下的檔案

                

        3).基於正則表達式的匹配 -regex

                find . -regex ".*\.py$" -print

                

         4).否定參數 !

                假設想要尋找不包括條件的檔案,則在類型前面加上!就可以:

                find . ! -name "*.sh" -print

                

        5).給予檔案夾深度的搜尋 -maxdepth 和-mindepth

                我們能夠通過這個命令來限制find向下尋找的深度

                find . -maxdepth 1 -type f -print   #在當前檔案夾的當前檔案夾尋找是檔案類型的檔案,也就是尋找時它不會向下遍曆

                

                -maxdepth和-mindepth應該作為find的第三個參數出現,假設作為第四個或者之後的參數出現,就可能會影響到find的效率,由於  它不得不進行一些不必要的檢查。

    ?    ?6).依據檔案類型搜尋 -type

    ?    ?    ?find . -type d -print   #僅僅列出全部的檔案夾

    ?    ?    ?

    ?    ?    ?find . -type f -print   #僅僅列出全部的檔案

    ?    ?    ?find . -type l -print    #僅僅列出全部的連結

    ?    ?7).依據檔案的時間搜尋  -mtime(改動時間) -atime(訪問時間) -ctime(變化時間),時間用+,-來表示時間的前後

    ?    ?    ?find . -type f -atime -7 -print   #列印出在近期7天內被訪問的全部檔案

    ?    ?    ?

    ?    ?    -amin(訪問時間),-mmin(改動時間),-cmin(變化時間)

    ?    ?    ?find . -type f -amin +7 -print    #列印出訪問時間超過7分鐘的全部檔案

    ?    ?    ?find . -type f -newer file.sh -print   #找出比file.sh改動時間更長的全部檔案

    ?    ?8),基於檔案大小的搜尋  -size

    ?    ?    ?find . -type f -size +2k    #尋找大於2KB的全部檔案,除了k之外,還能夠使用b--塊,c--位元組,w--字,M--MB,G--吉位元組

    ?    ?    ?

    ?    ?    ?find . -type f -size 2k   #大於等於2KB的檔案

    ?    ?    ?find . -type f -size -2k  #小於2KB的檔案

    ?    ?9).匹配操作

    ?    ?    ?find . -name "*.sh" -delete   #刪除匹配的全部檔案(甚用)

    ?   10).基於檔案許可權和全部權的匹配  --perm

    ?    ?    ?find . -type f -perm 644 -print   #列印出許可權為644的檔案

    ?   11).結合find運行命令或動作

    ?    ?    ?find命令能夠藉助選項-exec與其它命令進行結合,-exec算得上是find最強大的特性之中的一個。

    ?    ?    ?find . -type f -user root -exec chown test {} \; 這個命令中,{}是一個特殊字元串,與-exec選項結合使用。對於每一個匹配的檔案,{}會被替換成對應的檔案名稱。在上面的命令中,先尋找檔案所屬是root使用者的全部檔案,然後給test使用者加入許可權。

    ?    ?    ?find . -type f -name "*.sh" -exec cat {} \; > all_sh_files.txt  這個命令是先查出全部的sh檔案。然後將檔案的內容都加到文字檔裡。?

(linux shell)第二章--命令之樂(一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.