標籤:技術 exec 大於 name at命令 大於等於 span 分享 檔案內容
文章來自於我的個人部落格:(linux shell)第二章--命令之樂(一)
上一章我們描寫敘述了一些linux shell中須要注意的一些文法。接下來我們開始瞭解linux shell的經常使用命令。let‘s go...
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命令的意思是說將多個分行符號當作一個分行符號來看待。
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)第二章--命令之樂(一)