官术网_书友最值得收藏!

2.7 文件目錄管理命令

目前為止,我們學習Linux命令就像是在夯實地基,雖然表面上暫時還看不到成果,但其實大家的內功已經相當雄厚了。在Linux系統的日常運維工作中,還需要掌握對文件的創建、修改、復制、剪切、更名與刪除等操作。

1.touch命令

touch命令用于創建空白文件或設置文件的時間,格式為“touch [選項] [文件]”。

在創建空白的文本文件方面,這個touch命令相當簡捷,簡捷到沒有必要鋪開去講。比如,touch linuxprobe命令可以創建出一個名為linuxprobe的空白文本文件。對touch命令來講,有難度的操作主要是體現在設置文件內容的修改時間(mtime)、文件權限或屬性的更改時間(ctime)與文件的讀取時間(atime)上面。touch命令的參數及其作用如表2-11所示。

表2-11 touch命令的參數及其作用

接下來,我們先使用ls命令查看一個文件的修改時間,然后修改這個文件,最后再通過touch命令把修改后的文件時間設置成修改之間的時間(很多黑客就是這樣做的呢):

        [root@linuxprobe ~]# ls -l anaconda-ks.cfg
        -rw-------. 1 root root 1213 May  4 15:44 anaconda-ks.cfg
        [root@linuxprobe ~]# echo "Visit the LinuxProbe.com to learn linux skills" >>
        anaconda-ks.cfg
        [root@linuxprobe ~]# ls -l anaconda-ks.cfg
        -rw-------. 1 root root 1260 Aug  2 01:26 anaconda-ks.cfg
        [root@linuxprobe ~]# touch -d "2017-05-04 15:44" anaconda-ks.cfg
        [root@linuxprobe ~]# ls -l anaconda-ks.cfg
        -rw-------. 1 root root 1260 May  4 15:44 anaconda-ks.cfg

2.mkdir命令

mkdir命令用于創建空白的目錄,格式為“mkdir [選項]目錄”。

在Linux系統中,文件夾是最常見的文件類型之一。除了能創建單個空白目錄外,mkdir命令還可以結合-p參數來遞歸創建出具有嵌套疊層關系的文件目錄。

        [root@linuxprobe ~]# mkdir linuxprobe
        [root@linuxprobe ~]# cd linuxprobe
        [root@linuxprobe linuxprobe]# mkdir -p a/b/c/d/e
        [root@linuxprobe linuxprobe]# cd a
        [root@linuxprobe a]# cd b
        [root@linuxprobe b]#

3.cp命令

cp命令用于復制文件或目錄,格式為“cp [選項]源文件 目標文件”。

大家對文件復制操作應該不陌生,在Linux系統中,復制操作具體分為3種情況:

如果目標文件是目錄,則會把源文件復制到該目錄中;

如果目標文件也是普通文件,則會詢問是否要覆蓋它;

如果目標文件不存在,則執行正常的復制操作。

cp命令的參數及其作用如表2-12所示。

表2-12 cp命令的參數及其作用

接下來,使用touch創建一個名為install.log的普通空白文件,然后將其復制為一份名為x.log的備份文件,最后再使用ls命令查看目錄中的文件:

        [root@linuxprobe ~]# touch install.log
        [root@linuxprobe ~]# cp install.log x.log
        [root@linuxprobe ~]# ls
        install.log x.log

4.mv命令

mv命令用于剪切文件或將文件重命名,格式為“mv [選項]源文件 [目標路徑|目標文件名]”。

剪切操作不同于復制操作,因為它會默認把源文件刪除掉,只保留剪切后的文件。如果在同一個目錄中對一個文件進行剪切操作,其實也就是對其進行重命名:

        [root@linuxprobe ~]# mv x.log linux.log
        [root@linuxprobe ~]# ls
        install.log linux.log

5.rm命令

rm命令用于刪除文件或目錄,格式為“rm [選項]文件”。

在Linux系統中刪除文件時,系統會默認向您詢問是否要執行刪除操作,如果不想總是看到這種反復的確認信息,可在rm命令后跟上-f參數來強制刪除。另外,想要刪除一個目錄,需要在rm命令后面一個-r參數才可以,否則刪除不掉。我們來嘗試刪除前面創建的install.log和linux.log文件:

        [root@linuxprobe ~]# rm install.log
        rm: remove regular empty file ‘install.log'? y
        [root@linuxprobe ~]# rm -f linux.log
        [root@linuxprobe ~]# ls
        [root@linuxprobe ~]#

6.dd命令

dd命令用于按照指定大小和個數的數據塊來復制文件或轉換文件,格式為“dd [參數]”。

dd命令是一個比較重要而且比較有特色的一個命令,它能夠讓用戶按照指定大小和個數的數據塊來復制文件的內容。當然如果愿意的話,還可以在復制過程中轉換其中的數據。Linux系統中有一個名為/dev/zero的設備文件,每次在課堂上解釋它時都充滿哲學理論的色彩。因為這個文件不會占用系統存儲空間,但卻可以提供無窮無盡的數據,因此可以使用它作為dd命令的輸入文件,來生成一個指定大小的文件。dd命令的參數及其作用如表2-13所示。

表2-13 dd命令的參數及其作用

例如我們可以用dd命令從/dev/zero設備文件中取出一個大小為560MB的數據塊,然后保存成名為560_file的文件。在理解了這個命令后,以后就能隨意創建任意大小的文件了:

        [root@linuxprobe ~]# dd if=/dev/zero of=560_file count=1 bs=560M
        1+0 records in
        1+0 records out
        587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s

dd命令的功能也絕不僅限于復制文件這么簡單。如果您想把光驅設備中的光盤制作成iso格式的鏡像文件,在Windows系統中需要借助于第三方軟件才能做到,但在Linux系統中可以直接使用dd命令來壓制出光盤鏡像文件,將它編程一個可立即使用的iso鏡像:

        [root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
        7311360+0 records in
        7311360+0 records out
        3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s

考慮到有些讀者會糾結bs塊大小與count塊個數的關系,下面舉一個吃貨的例子進行解釋。假設小明的飯量(即需求)是一個固定的值,用來盛飯的勺子的大小即bs塊大小,而用勺子盛飯的次數即count塊個數。小明要想吃飽(滿足需求),則需要在勺子大小(bs塊大小)與用勺子盛飯的次數(count塊個數)之間進行平衡。勺子越大,用勺子盛飯的次數就越少。有上可見,bs與count都是用來指定容量的大小,只要能滿足需求,可隨意組合搭配方式。

7.file命令

file命令用于查看文件的類型,格式為“file文件名”。

在Linux系統中,由于文本、目錄、設備等所有這些一切都統稱為文件,而我們又不能單憑后綴就知道具體的文件類型,這時就需要使用file命令來查看文件類型了。

        [root@linuxprobe ~]# file anaconda-ks.cfg
        anaconda-ks.cfg: ASCII text
        [root@linuxprobe ~]# file /dev/sda
        /dev/sda: block special
主站蜘蛛池模板: 彰化市| 邹城市| 芜湖市| 顺义区| 开鲁县| 青州市| 益阳市| 万盛区| 个旧市| 玉溪市| 咸丰县| 黄冈市| 弋阳县| 泰兴市| 永丰县| 寿宁县| 穆棱市| 临漳县| 苏州市| 阿克苏市| 垫江县| 聊城市| 灵丘县| 理塘县| 甘南县| 湖南省| 静海县| 巴中市| 通化县| 巴东县| 泽州县| 上犹县| 谷城县| 寿光市| 宜良县| 溧水县| 嘉禾县| 上林县| 嘉义市| 高雄市| 南皮县|