
我在一些在線內容中看到了 cat 命令,我很好奇它的作用cat
以及它在只做一些簡單命令行操作的人的上下文中的用途。
答案1
cat
的主要目的是貓生成文件。將依序顯示、和其他內容cat file1 file2 ...
的內容,就好像這些內容位於單一文件中一樣。請參閱file
file2
線上說明頁:
NAME
cat - concatenate and print files
它適用於以下任一情況:
目標命令無法從檔案中讀取,您需要將多個檔案傳遞給它。一個例子是
tr
公用事業。通常,對於一個文件,您可以執行以下操作:tr < file
但對於多個文件,無法使用重定向,所以你必須這樣做:
cat file1 file2 ... | tr
- 目標指令能從多個文件讀取,但當給定多個文件時,其行為可能會改變。一個例子是
wc
,它會列印每個文件的計數以及文件名,您可能只需要總數,而不需要文件名。
請記住,您遇到的大多數命令(grep
、sed
、awk
、sort
...)都可以很好地讀取文件。
答案2
cat
是類 Unix 作業系統上最常用的指令之一。它具有三個與文字檔案相關的函數:
- 顯示它們
- 合併它們的副本
- 創造新的。
- 複製文件
cat 的一般語法是:
cat [options] [filenames] [-] [filenames]
讀取文件
cat 最常見的用途是讀取檔案的內容,而 cat 通常是用於此目的的最方便的程式。若要開啟文字檔案以便在顯示器上查看,只需鍵入單字 cat,後面跟著空格和檔案名,然後按 ENTER 鍵。例如,以下命令將顯示名為 file1 的檔案的內容:
cat file1
級聯
cat 的第二個作用是串聯。 (這就是貓的好奇名字的來源。)對原始文件沒有影響。
例如,下列指令將連接三個檔案 file1、file2 和 file3 的內容副本:
cat file1 file2 file3
每個文件的內容將顯示在監視器螢幕上。使用輸出重定向運算子可以輕鬆地將輸出重定向到另一個文件,例如 file4,使用以下命令:
cat file1 file2 file3 > file4
文件創建
謝謝@穆魯評論 :cat 能夠根據 shell 重定向功能而不是其本身創建新文件
對於小文件,這通常比使用 vi、gedit 或其他文字編輯器更容易。這是透過鍵入 cat 後跟輸出重定向運算子和要建立的檔案的名稱,然後按下ENTER並最後同時按Ctrl&d鍵來完成的。
例如,可以透過鍵入以下命令來建立名為 file1 的新文件
cat > file1
然後按ENTER並同時按Ctrl&d鍵。
PS1:如果名為file1的檔案已經存在,就會被覆蓋
PS2:您可以使用附加運算子附加到退出的檔案>>
範例 cat >> file1
複製文件
也可以使用 cat 指令(取決於shell 重新導向功能)建立一個新檔案並將現有檔案中的資料傳輸到其中。範例:製作文件的副本oldfile.txt
:
cat oldfile.txt > newfile.txt
參考:
答案3
它可用於顯示文件的內容。例如:cat "my file.txt"
。您也可以man cat
向您展示有關cat
用途的詳細資訊。
答案4
這是其他方式使用 shell 重定向(或管道)建立檔案cat
:
cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF
cat << EOF
將輸出以下行,直到EOF
再次遇到該字串。然後>
( >>
) 會將輸出重定向到檔案foo.sh
。或者,如果您需要以 root 身分建立文件,則可以將輸出透過管道傳輸到命令tee
( tee -a
),由下列命令執行sudo
:
cat << EOF | sudo tee foo.sh && sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
chmod +x
如果成功建立 ( ) ,上面的內容將使檔案可執行 ( )&&
。- 某些字元 (as ) 的特殊意義
$
應\
在 的輸出中轉義 (with )cat
。