我們都知道,在 Linux 上,包括裝置在內的一切都是檔案。Linux 管理員每天應該會多次執行檔案建立活動(可能是 20 次,50 次,甚至是更多,這依賴於他們的環境)。如果你想 在Linux上建立一個特定大小的檔案,檢視前面的這個連結。
高效建立一個檔案是非常重要的能力。為什麼我說高效?如果你了解一些高效進行你當前活動的方式,你就可以事半功倍。這將會節省你很多的時間。你可以把這些有用的時間用到到其他重要的事情上。
我下面將會介紹多個在 Linux 上建立檔案的方法。我建議你選擇幾個簡單高效的來輔助你的工作。你不必安裝下列的任何一個命令,因為它們已經作為 Linux 核心工具的一部分安裝到你的系統上了。
建立檔案可以通過以下六個方式來完成。
>
:標準重定向符允許我們建立一個 0KB 的空檔案。touch
:如果檔案不存在的話,touch
命令將會建立一個 0KB 的空檔案。echo
:通過一個引數顯示文字的某行。printf
:用於顯示在終端給定的文字。cat
:它串聯並列印檔案到標準輸出。vi
/vim
:Vim 是一個向上相容 Vi 的文字編輯器。它常用於編輯各種型別的純文字。nano
:是一個簡小且使用者友好的編輯器。它複製了 pico
的外觀和優點,但它是自由軟體。head
:用於列印一個檔案開頭的一部分。tail
:用於列印一個檔案的最後一部分。truncate
:用於縮小或者擴充套件檔案的尺寸到指定大小。標準重定向符允許我們建立一個 0KB 的空檔案。它通常用於重定向一個命令的輸出到一個新檔案中。在沒有命令的情況下使用重定向符號時,它會建立一個檔案。
但是它不允許你在建立檔案時向其中輸入任何文字。然而它對於不是很勤勞的管理員是非常簡單有用的。只需要輸入重定向符後面跟著你想要的檔名。
$ > daygeek.txt
使用 ls
命令檢視剛剛建立的檔案。
$ ls -lh daygeek.txt-rw-rw-r-- 1 daygeek daygeek 0 Feb 4 02:00 daygeek.txt
touch
命令常用於將每個檔案的存取和修改時間更新為當前時間。
如果指定的檔名不存在,將會建立一個新的檔案。touch
不允許我們在建立檔案的同時向其中輸入一些文字。它預設建立一個 0KB 的空檔案。
$ touch daygeek1.txt
使用 ls
命令檢視剛剛建立的檔案。
$ ls -lh daygeek1.txt-rw-rw-r-- 1 daygeek daygeek 0 Feb 4 02:02 daygeek1.txt
echo
內建於大多數的作業系統中。它常用於指令碼、批次檔,以及作為插入文字的單個命令的一部分。
它允許你在建立一個檔案時就向其中輸入一些文字。當然也允許你在之後向其中輸入一些文字。
$ echo "2daygeek.com is a best Linux blog to learn Linux" > daygeek2.txt
使用 ls
命令檢視剛剛建立的檔案。
$ ls -lh daygeek2.txt-rw-rw-r-- 1 daygeek daygeek 49 Feb 4 02:04 daygeek2.txt
可以使用 cat
命令檢視檔案的內容。
$ cat daygeek2.txt2daygeek.com is a best Linux blog to learn Linux
你可以使用兩個重定向符 (>>
) 新增其他內容到同一個檔案。
$ echo "It's FIVE years old blog" >> daygeek2.txt
你可以使用 cat
命令檢視新增的內容。
$ cat daygeek2.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blog
printf
命令也可以以類似 echo
的方式執行。
printf
命令常用來顯示在終端視窗給出的字串。printf
可以有格式說明符、跳脫序列或普通字元。
$ printf "2daygeek.com is a best Linux blog to learn Linux\n" > daygeek3.txt
使用 ls
命令檢視剛剛建立的檔案。
$ ls -lh daygeek3.txt-rw-rw-r-- 1 daygeek daygeek 48 Feb 4 02:12 daygeek3.txt
使用 cat
命令檢視檔案的內容。
$ cat daygeek3.txt2daygeek.com is a best Linux blog to learn Linux
你可以使用兩個重定向符 (>>
) 新增其他的內容到同一個檔案中去。
$ printf "It's FIVE years old blog\n" >> daygeek3.txt
你可以使用 cat
命令檢視這個檔案中新增的內容。
$ cat daygeek3.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blog
cat
表示串聯。在 Linux 經常用於讀取一個檔案中的資料。
cat
是在類 Unix 系統中最常使用的命令之一。它提供了三個與文字檔案相關的功能:顯示一個檔案的內容、組合多個檔案的內容到一個輸出以及建立一個新的檔案。(LCTT 譯註:如果 cat
命令後如果不帶任何檔案的話,下面的命令在迴車後也不會立刻結束,回車後的操作可以按 Ctrl-C
或 Ctrl-D
來結束。)
$ cat > daygeek4.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blog
使用 ls
命令檢視建立的檔案。
$ ls -lh daygeek4.txt-rw-rw-r-- 1 daygeek daygeek 74 Feb 4 02:18 daygeek4.txt
使用 cat
命令檢視檔案的內容。
$ cat daygeek4.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blog
如果你想向同一個檔案中新增其他內容,使用兩個連線的重定向符(>>
)。
$ cat >> daygeek4.txtThis website is maintained by Magesh M, It's licensed under CC BY-NC 4.0.
你可以使用 cat
命令檢視新增的內容。
$ cat daygeek4.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blogThis website is maintained by Magesh M, It's licensed under CC BY-NC 4.0.
vim
是一個向上相容 vi
的文字編輯器。它通常用來編輯所有種類的純文字。在編輯程式時特別有用。
vim
中有很多功能可以用於編輯單個檔案。
$ vi daygeek5.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blog
使用 ls
檢視剛才建立的檔案。
$ ls -lh daygeek5.txt-rw-rw-r-- 1 daygeek daygeek 75 Feb 4 02:23 daygeek5.txt
使用 cat
命令檢視檔案的內容。
$ cat daygeek5.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blog
nano
是一個編輯器,它是一個自由版本的 pico
克隆。nano
是一個小且使用者友好的編輯器。它複製了 pico
的外觀及優點,並且是一個自由軟體,它新增了 pico
缺乏的一系列特性,像是開啟多個檔案、逐行捲動、復原/重做、語法高亮、行號等等。
$ nano daygeek6.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blogThis website is maintained by Magesh M, It's licensed under CC BY-NC 4.0.
使用 ls
命令檢視建立的檔案。
$ ls -lh daygeek6.txt-rw-rw-r-- 1 daygeek daygeek 148 Feb 4 02:26 daygeek6.txt
使用 cat
命令來檢視一個檔案的內容。
$ cat daygeek6.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blogThis website is maintained by Magesh M, It's licensed under CC BY-NC 4.0.
head
命令通常用於輸出一個檔案開頭的一部分。它預設會列印一個檔案的開頭 10 行到標準輸出。如果有多個檔案,則每個檔案前都會有一個標題,用來表示檔名。
$ head -c 0K /dev/zero > daygeek7.txt
使用 ls
命令檢視建立的檔案。
$ ls -lh daygeek7.txt-rw-rw-r-- 1 daygeek daygeek 0 Feb 4 02:30 daygeek7.txt
tail
命令通常用來輸出一個檔案最後的一部分。它預設會列印每個檔案的最後 10 行到標準輸出。如果有多個檔案,則每個檔案前都會有一個標題,用來表示檔名。
$ tail -c 0K /dev/zero > daygeek8.txt
使用 ls
命令檢視建立的檔案。
$ ls -lh daygeek8.txt-rw-rw-r-- 1 daygeek daygeek 0 Feb 4 02:31 daygeek8.txt
truncate
命令通常用作將一個檔案的尺寸縮小或者擴充套件為某個指定的尺寸。
$ truncate -s 0K daygeek9.txt
使用 ls
命令檢查建立的檔案。
$ ls -lh daygeek9.txt-rw-rw-r-- 1 daygeek daygeek 0 Feb 4 02:37 daygeek9.txt
在這篇文章中,我使用這十個命令分別建立了下面的這十個檔案。
$ ls -lh daygeek*-rw-rw-r-- 1 daygeek daygeek 0 Feb 4 02:02 daygeek1.txt-rw-rw-r-- 1 daygeek daygeek 74 Feb 4 02:07 daygeek2.txt-rw-rw-r-- 1 daygeek daygeek 74 Feb 4 02:15 daygeek3.txt-rw-rw-r-- 1 daygeek daygeek 148 Feb 4 02:20 daygeek4.txt-rw-rw-r-- 1 daygeek daygeek 75 Feb 4 02:23 daygeek5.txt-rw-rw-r-- 1 daygeek daygeek 148 Feb 4 02:26 daygeek6.txt-rw-rw-r-- 1 daygeek daygeek 148 Feb 4 02:32 daygeek7.txt-rw-rw-r-- 1 daygeek daygeek 148 Feb 4 02:32 daygeek8.txt-rw-rw-r-- 1 daygeek daygeek 148 Feb 4 02:38 daygeek9.txt-rw-rw-r-- 1 daygeek daygeek 0 Feb 4 02:00 daygeek.txt