本篇文章是記錄我在學(xué)習(xí)Linux時(shí),有關(guān)Linux?文件系統(tǒng)的學(xué)習(xí)。操作系統(tǒng)的基本功能之一就是文件管理,而文件的管理是由文件系統(tǒng)來(lái)完成的。 Linux 支持多種文件系統(tǒng),接下來(lái)我們就來(lái)一起了解 Linux 下的文件系統(tǒng)、文件系統(tǒng)類型、文件系統(tǒng)結(jié)構(gòu)和文件系統(tǒng)相關(guān) Shell 命令。
有關(guān)Ubuntu下的常見(jiàn)命令操作可以參考這篇文章:
Ubutu下的Shell操作-CSDN博客
目錄
一、?Linux 文件系統(tǒng)簡(jiǎn)介以及類型
1、Linux 文件系統(tǒng)簡(jiǎn)介
?2、Linux 文件系統(tǒng)類型
二、文件操作指令
1、創(chuàng)建新文件命令——touch
2、文件夾創(chuàng)建命令——mkdir
3、文件及目錄刪除命令 ——rm
4、?文件夾(目錄)刪除命令—rmdir
5、文件復(fù)制命令—cp
6、文件移動(dòng)命令—mv
?三、文件壓縮和解壓縮
1、圖形化壓縮和解壓縮
2、命令進(jìn)行文件的壓縮和解壓縮?
3、命令 zip
4、 命令 unzip
?5、命令 tar
四、文件查詢和搜索
1、命令 find
2、命令 grep
五、文件類型
六、結(jié)語(yǔ)
一、?Linux 文件系統(tǒng)簡(jiǎn)介以及類型
1、Linux 文件系統(tǒng)簡(jiǎn)介
操作系統(tǒng)就是處理各種數(shù)據(jù)的,這些數(shù)據(jù)在硬盤上就是二進(jìn)制,人類肯定不能直接看懂這些二進(jìn)制數(shù)據(jù),要有一個(gè)翻譯器,將這些二進(jìn)制的數(shù)據(jù)還原為人類能看懂的文件形式,這個(gè)工作就是由文件系統(tǒng)來(lái)完成的,文件系統(tǒng)的目的就是實(shí)現(xiàn)數(shù)據(jù)的查詢和存儲(chǔ),由于使用場(chǎng)合、使用環(huán)境的不同, Linux 有多種文件系統(tǒng),不同的文件系統(tǒng)支持不同的體系。
文件系統(tǒng)是管理數(shù)據(jù)的,而可以存儲(chǔ)數(shù)據(jù)的物理設(shè)備有硬盤、 U 盤、 SD 卡、 NAND FLASH、 NOR FLASH、網(wǎng)絡(luò)存儲(chǔ)設(shè)備等。不同的存儲(chǔ)設(shè)備其物理結(jié)構(gòu)不同,不同的物理結(jié)構(gòu)就需要不同的文件系統(tǒng)去管理,比如管理 NAND FLASH 的話使用 YAFFS 文件系統(tǒng),管理硬盤、 SD 卡的話就是 ext 文件系統(tǒng)等等。
我們?cè)谑褂?Windows 的時(shí)候新買一個(gè)硬盤回來(lái)一般肯定是將這個(gè)硬盤分為好幾個(gè)盤,比如
C 盤、 D 盤等等。這個(gè)叫磁盤的分割, Linux 下也支持磁盤分割, Linux 下常用的磁盤分割工具為: fdisk, fdisk 這個(gè)工具我們后面會(huì)詳細(xì)講解怎么用,因?yàn)槲覀円浦?Linux 的時(shí)候需要將 SD卡分為三個(gè)分區(qū)來(lái)存儲(chǔ)不同的東西。在 Windows 下我們創(chuàng)建一個(gè)新的盤符以后都要做格式化處理,格式化其實(shí)就是給這個(gè)盤符創(chuàng)建文件系統(tǒng)的過(guò)程,我們?cè)?Windows 格式化某個(gè)盤的時(shí)候都會(huì)讓你選擇文件系統(tǒng),如圖所示:上圖就是格式化磁盤的時(shí)候選擇文件系統(tǒng), Windows 下一般有 FAT、 NTFS 和 exFAT這些文件系統(tǒng)。同樣的,在 Linux 下我們使用 fdisk 創(chuàng)建好分區(qū)以后也是要先在創(chuàng)建好的分區(qū)上面創(chuàng)建文件系統(tǒng),也就是格式化。
在 Windows 下有磁盤分區(qū)的概念,比如 C, D, E 盤等,在 Linux 下沒(méi)有這個(gè)概念,因此Linux 下你找不到像 C、 D、 E 盤這樣的東西。前面我們說(shuō)了 Linux 下可以給磁盤分割,但是沒(méi)有 C、 D、 E 盤那怎么訪問(wèn)這些分區(qū)呢?
在 Linux 下創(chuàng)建一個(gè)分區(qū)并且格式化好以后我們要將其“掛載”到一個(gè)目錄下才能訪問(wèn)這個(gè)分區(qū)。 Windows 的文件系統(tǒng)掛載過(guò)程是其內(nèi)部完成的,用戶是看不到的, Linux 下我們使用 mount 命令來(lái)掛載磁盤。掛載磁盤的時(shí)候是需要確定掛載點(diǎn)的,也就是你的這個(gè)磁盤要掛載到哪個(gè)目錄下。
?2、Linux 文件系統(tǒng)類型
前面我們說(shuō)了,在 Windows 下有 FAT、 NTFS 和 exFAT 這樣的文件系統(tǒng),在 Linux 下又有哪些文件系統(tǒng)呢, Linux 下的文件系統(tǒng)主要有 ext2、 ext3、 ext4 等文件系統(tǒng)。 Linux 還支持其他的 UNIX 文件系統(tǒng),比如 XFS、 JFS、 UFS 等,也支持 Windows 的 FAT 文件系統(tǒng)和網(wǎng)絡(luò)文件系統(tǒng) NFS 等。這里我們主要講一下 Linux 自帶的 ext2、 ext3 和 ext4 文件系統(tǒng)。
ext2 文件系統(tǒng):
ext2 是 Linux 早期的文件系統(tǒng),但是隨著技術(shù)的發(fā)展 ext2 文件系統(tǒng)已經(jīng)不推薦使用了,ext2是一個(gè)非日志文件系統(tǒng),大多數(shù)的 Linux 發(fā)行版都不支持 ext2 文件系統(tǒng)了。
ext3 文件系統(tǒng):
ext3 是在 ext2 的基礎(chǔ)上發(fā)展起來(lái)的文件系統(tǒng),完全兼容 ext2 文件系統(tǒng), ext3 是一個(gè)日志文件系統(tǒng), ext3 支持大文件, ext3 文件系統(tǒng)的特點(diǎn)有如下:
高可靠性:使用 ext3 文件系統(tǒng)的話,即使系統(tǒng)非正常關(guān)機(jī)、發(fā)生死機(jī)等情況,恢復(fù) ext3 文
件系統(tǒng)也只需要數(shù)十秒。
數(shù)據(jù)完整性: ext3 提高了文件系統(tǒng)的完整性,避免意外死機(jī)或者關(guān)機(jī)對(duì)文件系統(tǒng)的傷害。
文件系統(tǒng)速度: ext3 的日志功能對(duì)磁盤驅(qū)動(dòng)器讀寫(xiě)頭進(jìn)行了優(yōu)化,文件系統(tǒng)速度相對(duì)與 ext2來(lái)說(shuō)沒(méi)有降低。
數(shù)據(jù)轉(zhuǎn)換:從 ext2 轉(zhuǎn)換到 ext3 非常容易,只需要兩條指令就可以完成轉(zhuǎn)換。用戶不需要花
時(shí)間去備份、恢復(fù)、格式化分區(qū)等,用 ext3 文件系統(tǒng)提供的工具 tune2fs 即可輕松的將 ext2 文件系統(tǒng)轉(zhuǎn)換為 ext3 日志文件系統(tǒng)。 ext3 文件系統(tǒng)不需要經(jīng)過(guò)任何修改,可以直接掛載成 ext2 文件系統(tǒng)。
ext4 文件系統(tǒng):ext4 文件系統(tǒng)是在 ext3 上發(fā)展起來(lái)的, ext4 相比與 ext3 提供了更佳的性能和可靠性,并且功能更豐富, ext4 向下兼容 ext3 和 ext2,因此可以將 ext2 和 ext3 掛載為 ext4。那么我們安裝的 Ubuntu 使用的哪個(gè)版本的文件系統(tǒng)呢?在終端中輸入如下命令來(lái)查詢當(dāng)前磁盤掛載的啥文件系統(tǒng):
df -T – h在圖中,框起來(lái)的就是我們安裝 Ubuntu 的這個(gè)磁盤,在 Linux 下一切皆為文件,“/dev/sda1”就是我們的磁盤分區(qū),可以看出這個(gè)磁盤分區(qū)類型是 ext4,它的掛載點(diǎn)是“/”,也就是根目錄。
在 Linux 下因?yàn)闆](méi)有 C、 D 盤之說(shuō),因此 Linux 只有一個(gè)根目錄,沒(méi)有 C 盤根目錄、 D 盤
根目錄之類的。其實(shí)如果你的 Windows 只有一個(gè) C 盤的話那么整個(gè)系統(tǒng)也就只有一個(gè)根目錄。Windows 下的 C 盤根目錄就是“C:” ,在 Linux 下的根目錄就是“/”,你沒(méi)有看錯(cuò), Linux 根目錄就是用“/”來(lái)表示的,打開(kāi) Ubuntu 的文件瀏覽器,文件瀏覽器在左側(cè)的導(dǎo)航欄,圖標(biāo)如圖所示:
打開(kāi)以后的文件瀏覽器如圖所示:
直接打開(kāi)文件瀏覽器以后,我們默認(rèn)不是處于根目錄中的,不像 Windows,我們直接打開(kāi)
C 盤就處于 C 盤根目錄下。 Ubuntu 是支持多用戶的, Ubuntu 為每個(gè)用戶創(chuàng)建了一個(gè)根目錄,比如我電腦現(xiàn)在登陸的是“zxf”這個(gè)用戶,因此默認(rèn)進(jìn)入的是“zxf”這個(gè)用戶的根目錄。我們點(diǎn)擊圖中左側(cè)的“計(jì)算機(jī)”,打開(kāi)以后如圖所示就是 Ubuntu 的根目錄“/”,這時(shí)候肯定就有人有疑問(wèn),剛剛說(shuō) Ubuntu 會(huì)給每個(gè)用戶創(chuàng)建一個(gè)根目錄,那這些用戶的根目錄在哪里?是不是和根目錄“/”是一個(gè)地位的?其實(shí)所謂的給每個(gè)用戶創(chuàng)建一個(gè)根目錄只是方便說(shuō)而已,這個(gè)所謂的用戶根目錄其實(shí)就是“/”下的一個(gè)文件夾,以我的“zxf”這個(gè)用戶為例,其用戶根目錄就是: /home/zxf。
只要你創(chuàng)建了一個(gè)用戶,那么系統(tǒng)就會(huì)在/home 這個(gè)目錄下創(chuàng)建一個(gè)以這個(gè)用戶名命名的文件夾,這個(gè)文件夾就是這個(gè)用戶的根目錄。用戶可以對(duì)自己的用戶根目錄下的文件進(jìn)行隨意的讀寫(xiě)操作,但是如果要修改根目錄“/”下的文件就會(huì)提示沒(méi)有權(quán)限。打開(kāi)終端以后默認(rèn)進(jìn)入的是當(dāng)前用戶根目錄,比如我們打開(kāi)終端以后輸入“l(fā)s”命令查看當(dāng)前目錄下有什么文件,結(jié)果如圖所示:我們來(lái)看一下根目錄“/”下都有哪些文件,在終端中輸入如下命令:
cd /? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//進(jìn)入到根目錄"/"
ls? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //查看根目錄“/”下的文件以及文件夾圖中列舉出了根目錄“/”下面的所有文件夾,這里我們仔細(xì)觀察一下,當(dāng)我們進(jìn)入到根目錄“/”里面以后終端提示符“$”前面的符號(hào)“~”變成了“/”,這是因?yàn)楫?dāng)我們?cè)诮K端中切換了目錄以后“$”前面就會(huì)顯示切換以后的目錄路徑。我們來(lái)看一下根目錄“/”中的一些重要的文件夾:
二、文件操作指令
下面我來(lái)給大家分享一些在終端進(jìn)行文件操作的一些常用命令
1、創(chuàng)建新文件命令——touch
在前面學(xué)習(xí) VIM 的時(shí)候我們知道可以用 vi 指令來(lái)創(chuàng)建一個(gè)文本文檔,本節(jié)我們就學(xué)習(xí)一個(gè)功能更全面的文件創(chuàng)建命令—touch。 touch 不僅僅可以用用來(lái)創(chuàng)建文本文檔,其它類型的文檔也可以創(chuàng)建,命令格式如下:
touch [參數(shù)] [文件名] 使用touch創(chuàng)建文件的時(shí)候,如果 [文件名] 的文件不存在,那就直接創(chuàng)建一個(gè)以 [文件名] 命名的文件,如果[文件名]文件存在的話就僅僅修改一下此文件的最后修改日期,常用的命令參數(shù)如下:
?
-a 只更改存取時(shí)間 -c 不建立任何文件 -d<日期> 使用指定日期,而并非現(xiàn)在日期 -t<時(shí)間> 使用指定的時(shí)間,而并非現(xiàn)在時(shí)間 進(jìn)入到用戶根目錄下,直接使用命令“cd ~”即可快速進(jìn)入用戶根目錄,進(jìn)入用戶根目錄以
后使用 touch 命令創(chuàng)建一個(gè)名為 test 的文件,創(chuàng)建過(guò)程如圖所示:
2、文件夾創(chuàng)建命令——mkdir
既然可以創(chuàng)建文件,那肯定可以創(chuàng)建文件夾,那創(chuàng)建文件夾的命令是什么呢?
創(chuàng)建文件夾的命令格式如下:?
mkdir? ? ? [ 參數(shù) ]? ? [ 文件夾名目錄名?]
主要參數(shù)如下:
-p 如所要?jiǎng)?chuàng)建的目錄其上層目錄目前還未創(chuàng)建,那么會(huì)一起創(chuàng)建上層目錄。 我們?cè)谟脩舾夸浵聞?chuàng)建兩個(gè)分別名為“testdir1”和“testdir2”的文件夾,操作如圖
所示:
3、文件及目錄刪除命令 ——rm
既然有創(chuàng)建文件的命令,那肯定有刪除文件的命令,要?jiǎng)h除一個(gè)文件或者文件夾可以使用命令“rm”,此命令可以完成刪除一個(gè)文件或者多個(gè)文件及文件夾,它可以實(shí)現(xiàn)遞歸刪除。對(duì)于鏈接文件,只刪除鏈接,原文件保持不變,所謂的鏈接文件,其實(shí)就是 Windows 下的快捷方式文件,此命令格式如下:
rm [參數(shù)] [目的文件或文件夾目錄名] 命令主要參數(shù)如下:
我們使用 rm 命令來(lái)刪除前面使用命令“touch”創(chuàng)建的 test 文件,操作過(guò)程如圖所示:
命令“rm”也可以直接刪除文件夾,我們可以試一下刪除前面創(chuàng)建的 testdir1 文件夾,先直
接使用命令“rm testdir1”測(cè)試一下是否可以刪除,結(jié)果如圖所示:
可以看出,直接使用命令“rm”是無(wú)法刪除文件夾(目錄)的,我們需要加上參數(shù)“-rf”,也就是強(qiáng)制遞歸刪除文件夾(目錄),操作結(jié)果如圖所示:可以看出,當(dāng)在命令“rm”中加入?yún)?shù)“-rf”以后就可以刪除掉文件夾“testdir1”了。
4、?文件夾(目錄)刪除命令—rmdir
上面我們講解了如何使用命令“rm”刪除文件夾,那就是要加上參數(shù)“-rf”,其實(shí) Linux 提供了直接刪除文件夾(目錄)的命令—rmdir,它可以不加任何參數(shù)的刪除掉指定的文件夾(目錄),命令格式如下:
rmdir? ? ? [參數(shù)]? ? ? ? ? ? ? [文件夾(目錄)]
命令主要參數(shù)如下: -p 刪除指定的文件夾(目錄)以后,若上層文件夾(目錄)為空文件夾(目錄)的話就將其一起刪除。
我們使用命令“rmdir”刪除掉前面創(chuàng)建的“testdir2”文件夾,操作過(guò)程如圖所示:
5、文件復(fù)制命令—cp
在 Windows 下我們可以通過(guò)在文件上點(diǎn)擊鼠標(biāo)右鍵來(lái)進(jìn)行文件的復(fù)制和粘貼,在 Ubuntu下我們也可以通過(guò)點(diǎn)擊文件右鍵進(jìn)行文件的復(fù)制和粘貼。但是本節(jié)我們來(lái)講解如何在終端下使用命令來(lái)進(jìn)行文件的復(fù)制, Linux 下的復(fù)制命令為“cp”,命令描述如下:
cp [參數(shù)] [源地址] [目的地址]
主要參數(shù)描述如下: -a
-d
-f
-I
-p-r 或-R 遞歸處理
此參數(shù)和同時(shí)指定“-dpR”參數(shù)相同
在復(fù)制有符號(hào)連接的文件時(shí),保留原始的連接。
強(qiáng)行復(fù)制文件,不管要復(fù)制的文件是否已經(jīng)存在于目標(biāo)目錄。
覆蓋現(xiàn)有文件之前詢問(wèn)用戶。
保留源文件或者目錄的屬性。將指定目錄下的文件及子目錄一并處理
我們?cè)谟脩舾夸浵?,使用前面講解的命令“mkdir”創(chuàng)建兩個(gè)文件夾: test1 和 test2,過(guò)程
如圖所示:進(jìn)入上面創(chuàng)建的 test1 文件夾,然后在 test1 文件夾里面創(chuàng)建一個(gè) a.c 文件,操作過(guò)程如圖所示:
我們先將圖 中的 a.c 這個(gè)文件做個(gè)備份,也就是復(fù)制到同文件夾 test1 里面,新的文件命名為 b.c。然后在將 test1 文件夾中的 a.c 和 b.c 這兩個(gè)文件都復(fù)制到文件夾 test2 中,操作如下:
在圖中,我們添加了一些高級(jí)使用技巧,首先是拷貝 a.c 和 b.c 文件到 test2 文件夾中,我們使用了通配符“*”,“*.c”就表示 test1 下的所有以“.c”結(jié)尾的文件,也就是 a.c 和 b.c?!?./test2”中的“../”表示上級(jí)目錄,因此“../test2”就是上級(jí)目錄下的 test2 文件夾。
上面都是文件復(fù)制,我們接下來(lái)學(xué)習(xí)一下文件夾復(fù)制,我們將 test2 文件夾復(fù)制到同目錄下,新拷貝的文件夾命名為 test3,操作如圖所示:
6、文件移動(dòng)命令—mv
有時(shí)候我們需要將一個(gè)文件或者文件夾移動(dòng)到另外一個(gè)地方去,或者給一個(gè)文件或者文件夾進(jìn)行重命名,這個(gè)時(shí)候我們就可以使用命令“mv”了,此命令格式如下:
mv [參數(shù)] [源地址] [目的地址]
主要參數(shù)描述如下: -b
-f
-I如果要覆蓋文件的話覆蓋前先進(jìn)行備份。
若目標(biāo)文件或目錄與現(xiàn)在的文件重復(fù),直接覆蓋目的文件或目錄。在覆蓋之前詢問(wèn)用戶。
使用上面講解“cp”命令的時(shí)候創(chuàng)建了三個(gè)文件夾,在上面創(chuàng)建的 test1 文件夾里面創(chuàng)建一個(gè) c.c 文件,然后將 c.c 這個(gè)文件重命名為 d.c。最后將 d.c 這個(gè)文件移動(dòng)到 test2 文件夾里面,操作如圖所示:![]()
我們?cè)賹?test1 中的 d.c 文件移動(dòng)到 test2 文件夾里面,操作如圖所示:
?三、文件壓縮和解壓縮
文件的壓縮和解壓縮是非常常見(jiàn)的操作,在 Windows 下我們有很多壓縮和解壓縮的工具,比如 zip、 360 壓縮等等。在 Ubuntu 下也有壓縮工具,本節(jié)我們學(xué)習(xí) Ubuntu 下圖形化以及命令行這兩種壓縮和解壓縮操作。
1、圖形化壓縮和解壓縮
圖形化壓縮和解壓縮和 Windows 下基本一樣,在要壓縮或者解壓的文件上點(diǎn)擊鼠標(biāo)右鍵,然后選擇要進(jìn)行的操作,我們先講解一下如何進(jìn)行文件的壓縮。首先找到要壓縮的文件,然后在要壓縮的文件上點(diǎn)擊鼠標(biāo)右鍵,選擇“壓縮”選項(xiàng),如圖所示:
在圖中我們要對(duì) test2 這個(gè)文件夾進(jìn)行壓縮,點(diǎn)擊“壓縮”以后會(huì)彈出圖所示界面讓選擇壓縮后的文件名和壓縮格式。
設(shè)置好壓縮以后的文件名,然后選擇壓縮格式,可選的壓縮格式如圖所示
從圖中可以看出,可以選擇的壓縮格式還是有很多的,挑選一個(gè)格式進(jìn)行壓縮,比如我選擇的“.zip”這個(gè)格式,壓縮完成以后如圖所示:
上面就是使用圖形化進(jìn)行文件壓縮的過(guò)程,我們接下來(lái)對(duì)剛剛壓縮的 test2.zip 進(jìn)行解壓縮,
鼠標(biāo)放到 test2.zip 上然后點(diǎn)擊鼠標(biāo)右鍵,選擇“提取到此處”,如圖所示:
2、命令進(jìn)行文件的壓縮和解壓縮?
命令行下進(jìn)行壓縮和解壓縮常用的命令有三個(gè): zip、 unzip 和 tar,我們依次來(lái)學(xué)習(xí):
3、命令 zip
zip 命令看名字就知道是針對(duì).zip 文件的,用于將一個(gè)或者多個(gè)文件壓縮成一個(gè).zip 結(jié)尾的
文件,命令格式如下:
zip [參數(shù)] [壓縮文件名.zip] [被壓縮的文件] 上面講解了如何使用圖形化壓縮工具對(duì)文件夾 test2 進(jìn)行壓縮,這里我們使用命令“zip”對(duì)test2 文件夾進(jìn)行壓縮,操作如圖所示:
上圖就是使用 zip 命令進(jìn)行 test2 文件夾的壓縮,我們使用的命令如下:
zip -rv test2.zip test2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
上述命令中, -rv 表示遞歸壓縮并且顯示壓縮命令執(zhí)行過(guò)程。
4、 命令 unzip
unzip 命令用于對(duì).zip 格式的壓縮包進(jìn)行解壓,命令格式如下:
unzip [參數(shù)] [壓縮文件名.zip]
對(duì)上面壓縮的 test2.zip 文件使用 unzip 命令進(jìn)行解壓縮,操作如圖所示:
?5、命令 tar
我們前面講的 zip 和 unzip 這兩個(gè)是命令只適用于.zip 格式的壓縮和解壓,其它壓縮格式就
用不了了,比如 Linux 下最常用的.bz2 和.gz 這兩種壓縮格式。其它格式的壓縮和解壓使用命令tar, tar 將壓縮和解壓縮集合在一起,使用不同的參數(shù)即可,命令格式如下:
tar [參數(shù)] [壓縮文件名] [被壓縮文件名]
使用 tar 命令來(lái)進(jìn)行.zip 和.gz 格式的文件壓縮,操作如圖所示:
在圖中,我們使用如下兩個(gè)命令將testl文件夾壓縮為.bz2和.gz這兩個(gè)格式:
tar? ? ? ? ? -vcjf? ? ? ? ? ?test1.tar.bz2? ? ? ? ?test1
tar? ? ? ? ? -vczf? ? ? ? ? ?test1.tar.gz? ? ? ? ? ?test1 在上面兩行命令中, -vcjf 表示創(chuàng)建 bz2 格式的壓縮文件, -vczf 表示創(chuàng)建.gz 格式的壓縮文
件。學(xué)習(xí)了如何使用 tar 命令來(lái)完成壓縮,我們?cè)賮?lái)學(xué)習(xí)使用 tar 命令完成文件的解壓,操作如圖所示:
圖中我們使用如下所示兩行命令完成.bz2 和.gz 格式文件的解壓縮:
?
tar
tar-vxjf
-vxzftest1.tar.bz2
test2.tar.gz上述兩行命令中, -vxjf 用來(lái)完成.bz2 格式壓縮文件的解壓, -vxzf 用來(lái)完成.gz 格式壓縮文
件的解壓。關(guān)于 Ubuntu 下的命令行壓縮和解壓縮就講解到這里,重點(diǎn)是 tar 命令,要熟練掌握使用 tar 命令來(lái)完成.bz2 和.gz 格式的文件壓縮和解壓縮。
四、文件查詢和搜索
文件的查詢和搜索也是最常用的操作,在嵌入式 Linux 開(kāi)發(fā)中常常需要在 Linux 源碼文件
中查詢某個(gè)文件是否存在,或者搜索哪些文件都調(diào)用了某個(gè)函數(shù)等等。本節(jié)我們了解兩個(gè)最常用的文件查詢和搜索命令: find 和 grep。
1、命令 find
find 命令用于在目錄結(jié)構(gòu)中查找文件,其命令格式如下:
find? ? ? ? ? ?[路徑]? ? ? ? ? [參數(shù)]? ? ? ? ?[關(guān)鍵字]
路徑是要查找的目錄路徑,如果不寫(xiě)的話表示在當(dāng)前目錄下查找,關(guān)鍵字是文件名的一部
分,主要參數(shù)如下:
find 命令的參數(shù)有很多,常用的就這些,關(guān)于其它的參數(shù)大家可以自行上網(wǎng)查找,我們來(lái)看一下如何使用 find 命令進(jìn)行文件搜索,我們搜索目錄/etc 中以“vim”開(kāi)頭的文件為例,操
作如圖所示:從圖可以看出,在目錄/etc 下,包含以“vim*”開(kāi)頭的文件有/etc/vim、 /etc/vim/vimrc等等,就不一一列出了。
2、命令 grep
find 命令用于在目錄中搜索文件,我們有時(shí)候需要在文件中搜索一串關(guān)鍵字, grep 就是完
成這個(gè)功能的, grep 命令用于查找包含指定關(guān)鍵字的文件,如果發(fā)現(xiàn)某個(gè)文件的內(nèi)容包含所指定的關(guān)鍵字, grep 命令就會(huì)把包含指定關(guān)鍵字的這一行標(biāo)記出來(lái), grep 命令格式如下:
grep [參數(shù)] 關(guān)鍵字 文件列表 grep 命令一次只能查一個(gè)關(guān)鍵字,主要參數(shù)如下:
比如我們?cè)谀夸?usr 下遞歸查找包含字符“Ubuntu”的文件,操作如圖所示:
五、文件類型
這里的文件類型不是說(shuō)這個(gè)文件是音樂(lè)文件還是文本文件,在用戶根目錄下使用命令“l(fā)s-l”來(lái)查看用戶根目錄下所有文件的詳細(xì)信息,如圖所示:
在圖中,每個(gè)文件的詳細(xì)信息占一行,每行最前面的符號(hào)標(biāo)記了當(dāng)前文件類型,比如 test1 的第一個(gè)字符是“d”, test1.tar.bz2 文件第一個(gè)字符是“-”。這些字符表示的文件類型如下:
六、結(jié)語(yǔ)
?Linux 下的文件系統(tǒng)、文件系統(tǒng)類型、文件系統(tǒng)結(jié)構(gòu)和文件系統(tǒng)相關(guān) Shell 命令的學(xué)習(xí)分享就到此結(jié)束了。希望我的分享能給你帶來(lái)不一樣的收獲!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-835097.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-835097.html
到了這里,關(guān)于一文帶你了解:Linux 文件系統(tǒng)+文件系統(tǒng)相關(guān) Shell 命令+文件系統(tǒng)類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!