在Linux上創(chuàng)建文件的10個(gè)方法
我們都知道,在 Linux 上,包括設(shè)備在內(nèi)的一切都是文件。Linux 管理員每天應(yīng)該會(huì)多次執(zhí)行文件創(chuàng)建活動(dòng)(可能是 20 次,50 次,甚至是更多,這依賴于他們的環(huán)境)。如果你想 在Linux上創(chuàng)建一個(gè)特定大小的文件,查看前面的這個(gè)鏈接。
高效創(chuàng)建一個(gè)文件是非常重要的能力。為什么我說高效?如果你了解一些高效進(jìn)行你當(dāng)前活動(dòng)的方式,你就可以事半功倍。這將會(huì)節(jié)省你很多的時(shí)間。你可以把這些有用的時(shí)間用到到其他重要的事情上。
我下面將會(huì)介紹多個(gè)在 Linux 上創(chuàng)建文件的方法。我建議你選擇幾個(gè)簡單高效的來輔助你的工作。你不必安裝下列的任何一個(gè)命令,因?yàn)樗鼈円呀?jīng)作為 Linux 核心工具的一部分安裝到你的系統(tǒng)上了。
創(chuàng)建文件可以通過以下六個(gè)方式來完成。
>:標(biāo)準(zhǔn)重定向符允許我們創(chuàng)建一個(gè) 0KB 的空文件。touch:如果文件不存在的話,touch命令將會(huì)創(chuàng)建一個(gè) 0KB 的空文件。echo:通過一個(gè)參數(shù)顯示文本的某行。printf:用于顯示在終端給定的文本。cat:它串聯(lián)并打印文件到標(biāo)準(zhǔn)輸出。vi/vim:Vim 是一個(gè)向上兼容 Vi 的文本編輯器。它常用于編輯各種類型的純文本。nano:是一個(gè)簡小且用戶友好的編輯器。它復(fù)制了pico的外觀和優(yōu)點(diǎn),但它是自由軟件。head:用于打印一個(gè)文件開頭的一部分。tail:用于打印一個(gè)文件的末尾一部分。truncate:用于縮小或者擴(kuò)展文件的尺寸到指定大小。
在 Linux 上使用重定向符(>)創(chuàng)建一個(gè)文件
標(biāo)準(zhǔn)重定向符允許我們創(chuàng)建一個(gè) 0KB 的空文件。它通常用于重定向一個(gè)命令的輸出到一個(gè)新文件中。在沒有命令的情況下使用重定向符號時(shí),它會(huì)創(chuàng)建一個(gè)文件。
但是它不允許你在創(chuàng)建文件時(shí)向其中輸入任何文本。然而它對于不是很勤勞的管理員是非常簡單有用的。只需要輸入重定向符后面跟著你想要的文件名。
$ > daygeek.txt
使用 ls 命令查看剛剛創(chuàng)建的文件。
$ ls -lh daygeek.txt-rw-rw-r-- 1 daygeek daygeek 0 Feb 4 02:00 daygeek.txt
在 Linux 上使用 touch 命令創(chuàng)建一個(gè)文件
touch 命令常用于將每個(gè)文件的訪問和修改時(shí)間更新為當(dāng)前時(shí)間。
如果指定的文件名不存在,將會(huì)創(chuàng)建一個(gè)新的文件。touch 不允許我們在創(chuàng)建文件的同時(shí)向其中輸入一些文本。它默認(rèn)創(chuàng)建一個(gè) 0KB 的空文件。
$ touch daygeek1.txt
使用 ls 命令查看剛剛創(chuàng)建的文件。
$ ls -lh daygeek1.txt-rw-rw-r-- 1 daygeek daygeek 0 Feb 4 02:02 daygeek1.txt
在 Linux 上使用 echo 命令創(chuàng)建一個(gè)文件
echo 內(nèi)置于大多數(shù)的操作系統(tǒng)中。它常用于腳本、批處理文件,以及作為插入文本的單個(gè)命令的一部分。
它允許你在創(chuàng)建一個(gè)文件時(shí)就向其中輸入一些文本。當(dāng)然也允許你在之后向其中輸入一些文本。
$ echo "2daygeek.com is a best Linux blog to learn Linux" > daygeek2.txt
使用 ls 命令查看剛剛創(chuàng)建的文件。
$ ls -lh daygeek2.txt-rw-rw-r-- 1 daygeek daygeek 49 Feb 4 02:04 daygeek2.txt
可以使用 cat 命令查看文件的內(nèi)容。
$ cat daygeek2.txt2daygeek.com is a best Linux blog to learn Linux
你可以使用兩個(gè)重定向符 (>>) 添加其他內(nèi)容到同一個(gè)文件。
$ echo "It's FIVE years old blog" >> daygeek2.txt
你可以使用 cat 命令查看添加的內(nèi)容。
$ cat daygeek2.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blog
在 Linux 上使用 printf 命令創(chuàng)建一個(gè)新的文件
printf 命令也可以以類似 echo 的方式執(zhí)行。
printf 命令常用來顯示在終端窗口給出的字符串。printf 可以有格式說明符、轉(zhuǎn)義序列或普通字符。
$ printf "2daygeek.com is a best Linux blog to learn Linux\n" > daygeek3.txt
使用 ls 命令查看剛剛創(chuàng)建的文件。
$ ls -lh daygeek3.txt-rw-rw-r-- 1 daygeek daygeek 48 Feb 4 02:12 daygeek3.txt
使用 cat 命令查看文件的內(nèi)容。
$ cat daygeek3.txt2daygeek.com is a best Linux blog to learn Linux
你可以使用兩個(gè)重定向符 (>>) 添加其他的內(nèi)容到同一個(gè)文件中去。
$ printf "It's FIVE years old blog\n" >> daygeek3.txt
你可以使用 cat 命令查看這個(gè)文件中添加的內(nèi)容。
$ cat daygeek3.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blog
在 Linux 中使用 cat 創(chuàng)建一個(gè)文件
cat 表示串聯(lián)。在 Linux 經(jīng)常用于讀取一個(gè)文件中的數(shù)據(jù)。
cat 是在類 Unix 系統(tǒng)中最常使用的命令之一。它提供了三個(gè)與文本文件相關(guān)的功能:顯示一個(gè)文件的內(nèi)容、組合多個(gè)文件的內(nèi)容到一個(gè)輸出以及創(chuàng)建一個(gè)新的文件。(LCTT 譯注:如果 cat 命令后如果不帶任何文件的話,下面的命令在回車后也不會(huì)立刻結(jié)束,回車后的操作可以按 Ctrl-C 或 Ctrl-D 來結(jié)束。)
$ cat > daygeek4.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blog
使用 ls 命令查看創(chuàng)建的文件。
$ ls -lh daygeek4.txt-rw-rw-r-- 1 daygeek daygeek 74 Feb 4 02:18 daygeek4.txt
使用 cat 命令查看文件的內(nèi)容。
$ cat daygeek4.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blog
如果你想向同一個(gè)文件中添加其他內(nèi)容,使用兩個(gè)連接的重定向符(>>)。
$ cat >> daygeek4.txtThis website is maintained by Magesh M, It's licensed under CC BY-NC 4.0.
你可以使用 cat 命令查看添加的內(nèi)容。
$ 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.
在 Linux 上使用 vi/vim 命令創(chuàng)建一個(gè)文件
vim 是一個(gè)向上兼容 vi 的文本編輯器。它通常用來編輯所有種類的純文本。在編輯程序時(shí)特別有用。
vim 中有很多功能可以用于編輯單個(gè)文件。
$ vi daygeek5.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blog
使用 ls 查看剛才創(chuàng)建的文件。
$ ls -lh daygeek5.txt-rw-rw-r-- 1 daygeek daygeek 75 Feb 4 02:23 daygeek5.txt
使用 cat 命令查看文件的內(nèi)容。
$ cat daygeek5.txt2daygeek.com is a best Linux blog to learn LinuxIt's FIVE years old blog
在 Linux 上使用 nano 命令創(chuàng)建一個(gè)文件
nano 是一個(gè)編輯器,它是一個(gè)自由版本的 pico 克隆。nano 是一個(gè)小且用戶友好的編輯器。它復(fù)制了 pico 的外觀及優(yōu)點(diǎn),并且是一個(gè)自由軟件,它添加了 pico 缺乏的一系列特性,像是打開多個(gè)文件、逐行滾動(dòng)、撤銷/重做、語法高亮、行號等等。
$ 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 命令查看創(chuàng)建的文件。
$ ls -lh daygeek6.txt-rw-rw-r-- 1 daygeek daygeek 148 Feb 4 02:26 daygeek6.txt
使用 cat 命令來查看一個(gè)文件的內(nèi)容。
$ 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.
在 Linux 上使用 head 命令創(chuàng)建一個(gè)文件
head 命令通常用于輸出一個(gè)文件開頭的一部分。它默認(rèn)會(huì)打印一個(gè)文件的開頭 10 行到標(biāo)準(zhǔn)輸出。如果有多個(gè)文件,則每個(gè)文件前都會(huì)有一個(gè)標(biāo)題,用來表示文件名。
$ head -c 0K /dev/zero > daygeek7.txt
使用 ls 命令查看創(chuàng)建的文件。
$ ls -lh daygeek7.txt-rw-rw-r-- 1 daygeek daygeek 0 Feb 4 02:30 daygeek7.txt
在 Linux 上使用 tail 創(chuàng)建一個(gè)文件
tail 命令通常用來輸出一個(gè)文件結(jié)尾的一部分。它默認(rèn)會(huì)打印每個(gè)文件的末尾 10 行到標(biāo)準(zhǔn)輸出。如果有多個(gè)文件,則每個(gè)文件前都會(huì)有一個(gè)標(biāo)題,用來表示文件名。
$ tail -c 0K /dev/zero > daygeek8.txt
使用 ls 命令查看創(chuàng)建的文件。
$ ls -lh daygeek8.txt-rw-rw-r-- 1 daygeek daygeek 0 Feb 4 02:31 daygeek8.txt
在 Linux 上使用 truncate 命令創(chuàng)建一個(gè)文件
truncate 命令通常用作將一個(gè)文件的尺寸縮小或者擴(kuò)展為某個(gè)指定的尺寸。
$ truncate -s 0K daygeek9.txt
使用 ls 命令檢查創(chuàng)建的文件。
$ ls -lh daygeek9.txt-rw-rw-r-- 1 daygeek daygeek 0 Feb 4 02:37 daygeek9.txt
在這篇文章中,我使用這十個(gè)命令分別創(chuàng)建了下面的這十個(gè)文件。
$ 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

























