2.7 文件目錄管理命令

2022-05-26 16:54 更新

目前為止,我們學(xué)習(xí)Linux命令就像是在夯實(shí)地基,雖然表面上暫時(shí)還看不到成果,但其實(shí)大家的內(nèi)功已經(jīng)相當(dāng)雄厚了。在Linux系統(tǒng)的日常運(yùn)維工作中,還需要掌握對(duì)文件的創(chuàng)建、修改、復(fù)制、剪切、更名與刪除等操作。

1.touch命令

touch命令用于創(chuàng)建空白文件或設(shè)置文件的時(shí)間,格式為“touch [選項(xiàng)] [文件]”。

在創(chuàng)建空白的文本文件方面,這個(gè)touch命令相當(dāng)簡捷,簡捷到?jīng)]有必要鋪開去講。比如,touch linuxprobe命令可以創(chuàng)建出一個(gè)名為linuxprobe的空白文本文件。對(duì)touch命令來講,有難度的操作主要是體現(xiàn)在設(shè)置文件內(nèi)容的修改時(shí)間(mtime)、文件權(quán)限或?qū)傩缘母臅r(shí)間(ctime)與文件的讀取時(shí)間(atime)上面。touch命令的參數(shù)及其作用如表2-11所示。

表2-11 touch命令的參數(shù)及其作用

參數(shù) 作用
-a 僅修改“讀取時(shí)間”(atime)
-m 僅修改“修改時(shí)間”(mtime)
-d 同時(shí)修改atime與mtime

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

    [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命令用于創(chuàng)建空白的目錄,格式為“mkdir [選項(xiàng)] 目錄”。

在Linux系統(tǒng)中,文件夾是最常見的文件類型之一。除了能創(chuàng)建單個(gè)空白目錄外,mkdir命令還可以結(jié)合-p參數(shù)來遞歸創(chuàng)建出具有嵌套疊層關(guān)系的文件目錄。

    [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命令用于復(fù)制文件或目錄,格式為“cp [選項(xiàng)] 源文件 目標(biāo)文件”。大家對(duì)文件復(fù)制操作應(yīng)該不陌生,在Linux系統(tǒng)中,復(fù)制操作具體分為3種情況:

如果目標(biāo)文件是目錄,則會(huì)把源文件復(fù)制到該目錄中;

如果目標(biāo)文件也是普通文件,則會(huì)詢問是否要覆蓋它;

如果目標(biāo)文件不存在,則執(zhí)行正常的復(fù)制操作。

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

表2-12 cp命令的參數(shù)及其作用

參數(shù) 作用
-p 保留原始文件的屬性
-d 若對(duì)象為“鏈接文件”,則保留該“鏈接文件”的屬性
-r 遞歸持續(xù)復(fù)制(用于目錄)
-i 若目標(biāo)文件存在則詢問是否覆蓋
-a 相當(dāng)于-pdr(p、d、r為上述參數(shù))

接下來,使用touch創(chuàng)建一個(gè)名為install.log的普通空白文件,然后將其復(fù)制為一份名為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命令用于剪切文件或?qū)⑽募孛?,格式為“mv [選項(xiàng)] 源文件 [目標(biāo)路徑|目標(biāo)文件名]”。

剪切操作不同于復(fù)制操作,因?yàn)樗鼤?huì)默認(rèn)把源文件刪除掉,只保留剪切后的文件。如果在同一個(gè)目錄中對(duì)一個(gè)文件進(jìn)行剪切操作,其實(shí)也就是對(duì)其進(jìn)行重命名:

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

5.rm命令

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

在Linux系統(tǒng)中刪除文件時(shí),系統(tǒng)會(huì)默認(rèn)向您詢問是否要執(zhí)行刪除操作,如果不想總是看到這種反復(fù)的確認(rèn)信息,可在rm命令后跟上-f參數(shù)來強(qiáng)制刪除。另外,想要?jiǎng)h除一個(gè)目錄,需要在rm命令后面加一個(gè)-r參數(shù)才可以,否則刪除不掉。

rm命令中的參數(shù)及其作用

參數(shù) 作用
-f 強(qiáng)制執(zhí)行
-i 刪除前詢問
-r 刪除目錄
-v 顯示過程

我們來嘗試刪除前面創(chuàng)建的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命令用于按照指定大小和個(gè)數(shù)的數(shù)據(jù)塊來復(fù)制文件或轉(zhuǎn)換文件,格式為“dd [參數(shù)]”。

dd命令是一個(gè)比較重要而且比較有特色的一個(gè)命令,它能夠讓用戶按照指定大小和個(gè)數(shù)的數(shù)據(jù)塊來復(fù)制文件的內(nèi)容。當(dāng)然如果愿意的話,還可以在復(fù)制過程中轉(zhuǎn)換其中的數(shù)據(jù)。Linux系統(tǒng)中有一個(gè)名為/dev/zero的設(shè)備文件,每次在課堂上解釋它時(shí)都充滿哲學(xué)理論的色彩。因?yàn)檫@個(gè)文件不會(huì)占用系統(tǒng)存儲(chǔ)空間,但卻可以提供無窮無盡的數(shù)據(jù),因此可以使用它作為dd命令的輸入文件,來生成一個(gè)指定大小的文件。dd命令的參數(shù)及其作用如表2-13所示。

表2-13 dd命令的參數(shù)及其作用

參數(shù) 作用
if 輸入的文件名稱
of 輸出的文件名稱
bs 設(shè)置每個(gè)“塊”的大小
count 設(shè)置要復(fù)制“塊”的個(gè)數(shù)

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

    [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命令的功能也絕不僅限于復(fù)制文件這么簡單。如果您想把光驅(qū)設(shè)備中的光盤制作成iso格式的鏡像文件,在Windows系統(tǒng)中需要借助于第三方軟件才能做到,但在Linux系統(tǒng)中可以直接使用dd命令來壓制出光盤鏡像文件,將它變成一個(gè)可立即使用的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

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

7.file命令

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

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

    [root@linuxprobe ~]# file anaconda-ks.cfg 
    anaconda-ks.cfg: ASCII text
    [root@linuxprobe ~]# file /dev/sda
    /dev/sda: block special
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)