Shell 編程-常見的文件處理命令

touch 命令

touch命令用於建立空文件,例若有時應用程序但願在它們寫入數據以前,某個日誌文件就已經存在。這時可用touch命令建立一個空文件:touch test1
touch命令還能夠用來改變已有文件的訪問時間和修改時間,而不改變文件內容,例如已存在test1文件,再次執行touch test1 時,文件的建立時間就會爲當前時間,-t參數後跟時間戳則能夠將文件的建立時間改爲指定時間;git

cp 命令

此命令用以複製文件或者目錄,cp命令須要兩個參數,源對象和目標對象,最基本的用法爲:
cp source destination
sourcedestination都爲文件時,新文件以destination命名,sourcedestination也均可爲目錄文件
着重介紹cp命令的幾個經常使用參數:shell

  • -p:爲目標文件保留源文件的訪問時間和修改時間
  • -v:詳細模式,解釋複製過程當中發生了什麼(可用於shell程序日誌記錄)
  • -r:遞歸複製,用於複製目錄時及其子目錄
  • -b:建立備份,而不覆蓋
  • -f:強制覆蓋,無需詢問

mv 命令

mv即爲moving,用來將文件和目錄移動到另一個位置,基本用法爲:
mv source destination
可用mv命令進行文件重命名,將destination改成新的名字就好網絡

注意,移動一個有軟鏈接指向的文件會使得軟鏈接文件失效less

rm命令

rm命令用於刪除文件,在rm後跟文件或者目錄名便可日誌

  • -i:在刪除文件前進行詢問確認
  • -r:遞歸刪除目錄文件及其子目錄
  • -f:強制性刪除文件,不進行任何詢問(例如刪除擁有git倉庫的文件)

    注意,由於rm命令不是將文件回收垃圾站,而是完全消失,在執行rm -rf destination這個命令時務必當心謹慎,輕則幾天的心血付之東流,重則你正在使用的系統所有被刪乾淨
    本人借鑑網絡上前輩的處理經驗,附上刪除至回收站代碼(在.zshrc文件中添加)
    alias rmtrash=trash alias lltrash=‘ll /.Trash’ trash() { mv -v $@ /.Trash/ }
    這種狀況下能夠執行rmtrash命令代替rm命令,lltrash命令查看垃圾箱中的文件code

mkdir 命令

建立目錄命令,-p參數用於遞歸建立對象

file 命令

查看文件類型命令
File命令將文件分紅3類遞歸

  • 文本文件:包含可打印字符的文件
  • 可執行文件:可在系統上運行的文件
  • 數據文件:包含不可打印二進制字符,又不能在系統上運行的文件

查看整個文件

  1. cat命令
    cat命令就是簡單的將文件的內容所有顯示出來,理解很簡單,介紹下幾個參數
    • -n:給顯示的內容加上行號
    • -b:只給有文本的行添加行號
    • -s:將多個空白行壓縮到單個空白行
  2. more命令
    cat命令的缺陷是,一旦運行了cat命令,則對於內容很是多的文件,將會持續打印直到完成,這樣在打印的過程當中將沒法進行其餘的命令,除非強制退出當前命令。爲了解決這個問題,開發人員編寫了more命令。more命令會顯示文本文件的內容,可是會在顯示每頁數據以後停下來,等待操做人員輸入命令來進行後續活動。
  3. less命令
    less命令的命名其實是個文字遊戲—「less is more」,應該說查看文件內容就用less命令,不會將文件內容打印到終端,而且支持許多命令還有方向鍵查看文件內容,這樣在查看文件內容時你就有徹底控制權了。

查看部分文件

  1. head命令
    顯示文件開頭幾行的內容,默認顯示10行,能夠大體知道文件的內容而不用加載所有文件。參數與tail命令差很少,接下來着重介紹tail命令
  2. tail命令
    tail命令會顯示文件末尾部分的內容。默認狀況也是顯示文件的末尾10行,也可跟參數控制
    • -c bytes:顯示文件最後的bytes個字節的字符
    • -n lines:顯示文件最後的lines行
    • -f:讓tail程序一直保持活動狀態,若是有新的內容則在文件的末尾顯示出來
    • -pid=PID:和-f參數一塊兒,跟蹤一個文件直到ID爲PID的進程結束
    • -s sec:和-f參數一塊兒,在每次循環輸出之間休眠sec秒

-f參數是tail命令的一個突出的特性,它容許你在其餘進程使用該文件時查看文件的內容。tail命令會保持活動狀態並不斷地顯示添加到文件中的內容。是實時監測系統日誌的絕妙方式。遊戲

相關文章
相關標籤/搜索