Linux常用文件管理命令詳解

  • 2022 年 3 月 15 日
  • 筆記

cat

cat命令用於連接文件並列印到標準輸出設備上。

命令語法:cat [參數] [文件名]

參數說明:

參數 說明
-n 由1開始對所有輸出的行數進行編號。
-b 由1開始對所有輸出的行數進行編號,對於空白行不編號。
-s 當遇到有連續兩行以上的空白行,就替換為一行的空白行。
-E 在每行結束處顯示$。
-T 將 TAB 字元顯示為^I

使用示例:

  1. 將一個萬貓學社每個字佔一行寫入one.txt文件中,再查看文件one.txt內容。
echo -e '萬\n貓\n學\n社' > one.txt
cat one.txt

效果如下圖:

  1. 將one.txt的文件內容加上行號後輸入到more.txt文件,再查看文件more.txt內容。
cat -n one.txt > more.txt
cat more.txt

效果如下圖:

  1. 將one.txt文件內容清空,查看文件one.txt內容。
cat /dev/null > one.txt
cat one.txt

效果如下圖:

可以看到one.txt文件沒有任何內容。

file

file命令用於辨識文件類型。

命令語法:file [參數] [文件]

參數說明:

參數 說明
-b 列出辨識結果時,不顯示文件名稱
-c 詳細顯示指令執行過程,便於排錯或分析程式執行的情形
-L 直接顯示符號連接所指向的文件的類別
-v 顯示版本資訊
-z 解讀壓縮文件的內容

使用示例:

  1. 顯示onemore.txt文件類型。
echo '萬貓學社' > onemore.txt
file onemore.txt

效果如下圖:

  1. 顯示百度logo的文件類型並不顯示文件名稱。
wget //www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png
file -b PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png

效果如下圖:

find

find命令用來在指定目錄下查找文件。任何位於參數之前的字元串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。並且將查找到的子目錄和文件全部進行顯示。

命令語法:find [參數] [文件]

參數說明:

參數 說明
-mount 只檢查和指定目錄在同一個文件系統下的文件,避免列出其它文件系統中的文件
-amin n 在過去n分鐘內被讀取過文件
-type 文件類型 指定查找的文件類型,d: 目錄,c: 字型裝置文件,b: 區塊裝置文件,p: 具名貯列,f: 一般文件,l: 符號連結,s: socket
-cmin n 在過去n分鐘內被修改過
-name name 查找文件名稱為name的文件
-size n 文件大小

使用示例:

  1. 將當前目錄及其子目錄下所有文件後綴為.txt的文件列出來。
touch one.txt more.txt
find . -name "*.txt"

效果如下圖:

  1. 將當前目錄及其子目錄下3天以前的普通文件列出來。
find . -type f -mtime +3

效果如下圖:

cmp

cmp命令用於比較兩個文件是否有差異。當相互比較的兩個文件完全一樣時,該指令不會顯示任何資訊。否則會標示出第一個不同之處的字元和列數編號。當不指定任何文件名稱,或文件名為"-",則cmp指令會從標準輸入設備讀取數據。

命令語法:cmp [-clsv][-i <字元數目>][--help][第一個文件][第二個文件]

參數說明:

參數 說明
-c 除了標明差異處的十進位字碼之外,一併顯示該字元所對應字元
-i <字元數目> 指定一個數目
-l 標示出所有不一樣的地方
-s 不顯示錯誤資訊
-v 顯示版本資訊
--help 顯示幫助資訊

使用示例:

將一個萬貓學社77每個字佔一行寫入one.txt文件中:

echo -e '萬\n貓\n學\n社\n77' > one.txt

將一個萬貓學社88每個字佔一行寫入more.txt文件中:

echo -e '萬\n貓\n學\n社\n88' > more.txt

比較one.txt文件和more.txt文件是否相同:

cmp one.txt more.txt

效果如下圖:

可以看到one.txt文件和more.txt文件第5行就有不同之處。

diff

diff命令用於比較文件的差異。diff命令以逐行的方式,比較文本文件的異同處。如果指定要比較目錄,則diff會比較目錄中相同文件名的文件,但不會比較其中子目錄。

命令語法:diff [參數] [文件或目錄1] [文件或目錄2]

參數說明:

參數 說明
-<行數> 指定要顯示多少行的文本,此參數必須與-c或-u參數一併使用
-c 顯示全部內文,並標出不同之處
-u 以合併的方式來顯示文件內容的不同
-a 只會逐行比較文本文件
-b 不檢查空格字元的不同
-d 使用不同的演演算法,以較小的單位來做比較
-i 不檢查大小寫的不同
-y 以並列的方式顯示文件的異同之處
-W<寬度> 在使用-y參數時,指定欄寬

使用示例:

比較one.txt文件和more.txt文件,以並排格式輸出。

diff one.txt more.txt -y -W 10

效果如下圖:

最後,謝謝你這麼帥,還給我點贊和關注。

微信公眾號:萬貓學社

微信掃描二維碼

關注後回復「電子書」

獲取12本Java必讀技術書籍

Tags: