在任何操作系統中,使用者都會與檔案互動,進行像是建立、刪除和讀取等操作。在Linux系統中,情況也是如此。
雖然您可以使用圖形使用者介面在Linux作業系統中管理檔案,但大多數Linux使用者傾向於透過終端機與作業系統互動。
因此,Linux提供了直接從終端機處理檔案的指令。其中一個指令就是cat
指令。
根據Linux的說明文件,cat
指令用於連接檔案並將檔案內容列印到標準輸出。Linux的說明文件是用來幫助使用者了解Linux指令及其使用方式的參考資料。
若要查閱任何Linux指令的說明文件,只需輸入man <指令名稱>
。例如,若要查看cat
指令的說明文件,請在終端機中執行以下指令:
man cat
cat
指令的用途
如前所述,cat
指令可以將檔案的內容顯示在螢幕上。它的另一個功能是連接多個檔案並輸出它們的內容。這表示,如果您向cat
指令提供多個檔案,它會將它們的內容串連起來並輸出到螢幕。
簡單來說,cat
指令會將多個檔案的內容合併後輸出到螢幕。然而,在這樣的操作中,cat
指令不會建立任何新檔案,原本在cat
指令中使用的檔案將維持不變。
cat
指令也用於重導向。重導向是指使用者如何改變標準輸入的來源以及標準輸出和標準錯誤的目的地。標準輸入、標準輸出和標準錯誤是Linux中用於通訊的標準流。
預設情況下,標準輸入是鍵盤,標準輸出和標準錯誤預設顯示在螢幕上。
因此,重導向意味著我們可以將輸入重新導向,從檔案或其他來源取得輸入,而不是預設的鍵盤。
當涉及到預設顯示在螢幕上的標準輸出和標準錯誤時,您可以透過重導向將這些輸出寫入檔案。
cat
指令語法
cat
指令的語法如下:
cat [選項]... [檔案]...
在Linux說明文件中,方括號中的任何內容都是可選的。因此,在上述語法中,cat
指令不一定要有選項或檔案作為參數。它可以有其中一個,兩者都有或根本沒有。
省略號(…)表示允許使用一個或多個前面的運算元或參數。因此,cat
指令可以採用一個或多個選項或檔案。
FILE
表示我們希望cat
指令連接和顯示的檔案。OPTION
表示可以加入cat
指令以修改其行為的標誌。以下是一些可以與cat
指令一起使用的選項:
cat
指令的運作方式是取得傳遞給它的檔案,並將其內容輸出到標準輸出,也就是終端機視窗。如果有數個檔案傳遞給它,它們的內容會被連接起來,然後顯示在終端機視窗上。
cat
指令的行為也會根據傳遞給它的標誌而有所不同。例如,傳遞-n
標誌會使cat
指令對所有輸出行編號。根據您希望它的行為方式,您可以傳遞任何可與cat
指令一起使用的標誌。
如何使用cat
指令
例如,要使用cat
指令,只需輸入指令和要連接和讀取的檔案名稱。要輸出名為rainbow.txt
的檔案內容,請執行以下指令。
cat rainbow.txt
您也可以加入一個標誌來修改cat
指令的行為。例如,您可以使用-n
標誌對所有輸出行進行編號。在上述範例中,我們可以透過執行以下指令來對rainbow.txt
中的所有輸出行編號:
cat -n rainbow.txt
這兩個指令的輸出如下所示:
要組合可以與cat
指令一起使用的標誌或選項,只需將它們一個接一個地寫下來,或者您也可以將它們隔開。兩者都可以。下面顯示的-E
標誌用於在輸出行的末尾添加美元符號($)。
這在顯示貨幣值時很有用。可以使用cat
指令組合多個標誌的各種方法如下所示:
要使用cat
指令連接和顯示多個檔案,只需將檔案名稱一個接一個地寫入,並以空格分隔。例如,要連接兩個名為rainbow.txt
和primary.txt
的檔案,請執行以下指令:
cat rainbow.txt primary.txt
指令的輸出如下所示:
rainbow.txt
和primary.txt
這兩個檔案在這個操作之後將保持不變。請注意,檔案在指令中出現的順序決定了內容的顯示方式。會從第一個檔案到最後一個檔案顯示內容。您還可以在連接和顯示多個檔案時添加標誌,如下所示:
關於cat
指令需要注意的最後一件事是,如果沒有向指令提供檔案或提供破折號(-),cat
指令會從標準輸入而不是檔案中讀取。標準輸入是鍵盤。
因此,cat
指令將簡單地顯示使用者透過鍵盤輸入的任何內容。若要親身體驗一下,請執行以下指令:
cat
該指令會將您帶到等待鍵盤輸入的閃爍游標。輸入任何文字,然後按Enter。無論您鍵入什麼,都會輸出到標準輸出,如下所示:
按CTRL + C
退出並停止將輸入傳遞給cat
指令。
我們也可以使用cat
指令連接並輸出活動目錄中特定類型之所有檔案的內容。這是使用星號通配符完成的。
cat *.txt
例如,若要輸出特定目錄中文字檔案(.txt
)的所有內容,我們將執行以下程式碼:
指令的輸出如下所示:
cat
指令範例
除了cat
指令的標準用法之外,還可以透過重導向來增強cat
指令的功能。如前所述,cat
指令預設輸出到終端機螢幕。
但是,透過重導向,我們可以將其輸出重導向到另一個檔案,而不是將輸出顯示在螢幕上。
Linux中的輸出重導向運算子是>
(大於號,也稱為人字形)。
cat rainbow.txt
例如,如果我們執行以下指令:
我們會將rainbow.txt
的內容輸出到螢幕上。
cat colors.txt > rainbow.txt
但是,如果我們執行
rainbow.txt
的內容不會顯示在螢幕上。相反地,它們將被重導向並寫入colors.txt
檔案。這是一種將內容從一個檔案複製到另一個檔案的絕佳方法。
Linux中輸出重導向的預設行為是覆寫我們重導向到的檔案中的所有內容。例如,在上面的範例中,rainbow.txt
中的所有內容將被colors.txt
中的內容覆寫。若要保留要重導向到的檔案中的現有內容,並將新內容附加到其中,請在重導向時使用>>
。
請注意,在使用>>
將rainbows.txt
的輸出重導向到colors.txt
後,colors.txt
現在具有在rainbows.txt
中找到的顏色。
為了進一步發揮cat
指令的功能,我們可以結合重導向和cat
指令的預設行為(當沒有提供檔案時從標準輸入讀取),以便使用cat
指令建立檔案並寫入檔案。
cat > dark.txt
如果您執行下面的程式碼
我們會重導向到dark.txt
。由於我們沒有提供其內容將被重導向到dark.txt
的檔案,因此cat
指令將需要來自鍵盤的輸入。
因此,在dark.txt
中輸入您想要儲存的任何文字,按Enter
跳到下一行,完成後按CTRL + D
將您輸入的內容儲存到您要重導向到的檔案中。
由於我們重導向到一個不存在的檔案,dark.txt
將自動建立,我們透過鍵盤輸入的內容將儲存在該檔案中。這樣,我們就可以使用cat
指令建立檔案並在建立時寫入檔案。
該操作的輸出如下所示:
cat >> dark.txt
cat
也可用於將文字添加到檔案末尾。使用dark.txt
,我們可以透過執行以下指令為其添加更多顏色:
然後,您可以透過鍵盤輸入來添加其他資訊,然後按CTRL + D
儲存新內容並將其附加到dark.txt
,如下所示:
cat file1 file2 file3 > file4
cat
指令也可用於將多個檔案連接成一個檔案。這種操作的語法如下所示:
file1
、file2
和file3
的內容將連接在一起並寫入file4
。如果不想要覆寫file4
中的內容,也可以使用>>
。如果file4
不存在,它將自動建立。
下面顯示了一個例子:
cat colors.txt primary.txt > allColors.txt
若要將colors.txt
和primary.txt
的內容寫入allColors.txt
,我們執行:
cat primary.txt >> colors.txt
您也可以使用cat
指令將一個或多個檔案的內容附加到另一個檔案。這是透過在重導向輸出時使用>>
來完成的。這避免了覆寫已儲存在其他檔案中的內容。例如,要將primary.txt
的內容附加到colors.txt
,請執行以下程式碼:
此操作的結果如下所示:
結論
cat
指令是一個非常有用的Linux指令,它允許使用者連接並顯示檔案的內容。該指令有多個標誌,可以添加到它來改變它的行為方式。
透過重導向,可以極大地增強cat
指令的功能,允許使用者建立和複製檔案、將多個檔案連接成一個檔案以及附加到現有檔案。要了解更多關於cat
指令的資訊,請查閱其說明文件。
您還可以為系統管理員探索一些Linux指令。