Linux常用文件管理命令詳解
- 2022 年 3 月 15 日
- 筆記
cat
cat命令用於連接文件並列印到標準輸出設備上。
命令語法:cat [參數] [文件名]
參數說明:
| 參數 | 說明 |
|---|---|
| -n | 由1開始對所有輸出的行數進行編號。 |
| -b | 由1開始對所有輸出的行數進行編號,對於空白行不編號。 |
| -s | 當遇到有連續兩行以上的空白行,就替換為一行的空白行。 |
| -E | 在每行結束處顯示$。 |
| -T | 將 TAB 字元顯示為^I |
使用示例:
- 將一個
萬貓學社每個字佔一行寫入one.txt文件中,再查看文件one.txt內容。
echo -e '萬\n貓\n學\n社' > one.txt
cat one.txt
效果如下圖:

- 將one.txt的文件內容加上行號後輸入到more.txt文件,再查看文件more.txt內容。
cat -n one.txt > more.txt
cat more.txt
效果如下圖:

- 將one.txt文件內容清空,查看文件one.txt內容。
cat /dev/null > one.txt
cat one.txt
效果如下圖:

可以看到one.txt文件沒有任何內容。
file
file命令用於辨識文件類型。
命令語法:file [參數] [文件]
參數說明:
| 參數 | 說明 |
|---|---|
| -b | 列出辨識結果時,不顯示文件名稱 |
| -c | 詳細顯示指令執行過程,便於排錯或分析程式執行的情形 |
| -L | 直接顯示符號連接所指向的文件的類別 |
| -v | 顯示版本資訊 |
| -z | 解讀壓縮文件的內容 |
使用示例:
- 顯示onemore.txt文件類型。
echo '萬貓學社' > onemore.txt
file onemore.txt
效果如下圖:

- 顯示百度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 | 文件大小 |
使用示例:
- 將當前目錄及其子目錄下所有文件後綴為.txt的文件列出來。
touch one.txt more.txt
find . -name "*.txt"
效果如下圖:

- 將當前目錄及其子目錄下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必讀技術書籍


