有關(guān)Linux文件管理的相關(guān)命令教程

在了解了linux文件管理背景知識(shí)之后, 我們可以學(xué)習(xí)一些命令來(lái)管理我們的文件。?

文件操作相關(guān)

有一些命令可以幫助我們”修剪”之前看到的文件樹(shù)。

$touch a.txt

如果a.txt不存在,生成一個(gè)新的空文檔a.txt。如果a.txt存在,那么只更改該文檔的時(shí)間信息。(這個(gè)命令實(shí)際上用得并不廣泛,但可以幫我們創(chuàng)建一個(gè)空文件來(lái)實(shí)驗(yàn)下面操作)

$ls?.

是list的簡(jiǎn)寫(xiě),列出當(dāng)前目錄下的所有文件名

$ls -l a.txt

列出文件的詳細(xì)信息

?

$cp a.txt b.txt?

cp是copy的簡(jiǎn)寫(xiě),用來(lái)復(fù)制文件。在工作目錄下,將a.txt復(fù)制到文件b.txt

$cp a.txt ..

將a.txt復(fù)制到父目錄的a.txt

?

$mv a.txt c.txt

mv是move的簡(jiǎn)寫(xiě),用來(lái)移動(dòng)文件。將a.txt移動(dòng)成為c.txt (相當(dāng)于重命名rename)

$mv c.txt /home/vamei

將c.txt移動(dòng)到/home/vamei目錄

?

$rm a.txt

rm是remove的縮寫(xiě),用于刪除文件。刪除a.txt

$rm -r /home/vamei

刪除從/home/vamei向下的整個(gè)子文件系統(tǒng)。-r表示recursive, 是指重復(fù)刪除的操作,/home/vamei文件夾為空,然后刪除/home/vamei文件夾本身。

(程序員總是對(duì)這個(gè)命令很感興趣,?? $rm -rf /?? 它會(huì)刪除整個(gè)文件樹(shù)。f的目的是告訴rm放心干,不用再確認(rèn)了…… 一般情況下,應(yīng)該沒(méi)有人會(huì)用這個(gè)命令。)

?

$mkdir /home/vamei/good

創(chuàng)建一個(gè)新的目錄

$rmdir /home/vamei/good

刪除一個(gè)空的目錄

?

文件權(quán)限相關(guān)

$chmod 755 a.txt

(你必須是文件a.txt的擁有者才能運(yùn)行此命令。或者以$sudo chmod 755 a.txt的方式,以超級(jí)用戶的身份運(yùn)行該命令。)

change mode 改變a.txt的讀、寫(xiě)以及執(zhí)行權(quán)限。還記得每個(gè)文件都有九位的讀寫(xiě)執(zhí)行權(quán)限(參看 linux文件管理背景知識(shí)),分為三組,分別對(duì)應(yīng)擁有者(owner),擁有組(owner group)中的用戶和所有其他用戶(other)。在這里,我們也有三個(gè)數(shù)字,755,對(duì)應(yīng)三個(gè)組。7被分配給擁有者,5被分配給擁有組,最后一個(gè)5分配給其它用戶。Linux規(guī)定: 4為有讀取的權(quán)利,2為有寫(xiě)入的權(quán)利,1為有執(zhí)行的權(quán)利。我們看到的7實(shí)際上是4 + 2 + 1,表示擁有者有讀、寫(xiě)、執(zhí)行三項(xiàng)權(quán)利。(想想5 意味著什么)

這時(shí),運(yùn)行$ls -l a.txt, 你應(yīng)該看到九位的權(quán)限變成了rwxr-xr-x。根據(jù)自己的需要,你可以用比如444, 744代替755,來(lái)讓文件有不同的權(quán)限。

?

$sudo chown root a.txt

change owner 改變文件的擁有者為root用戶。這個(gè)命令需要有超級(jí)用戶權(quán)限才能執(zhí)行,所以我們?cè)诿钪凹由蟬udo。

$sudo chgrp root a.txt

change group 改變文件的擁有組為root組

?

Linux文件名通配表達(dá)式

(wild card, 也叫filename pattern matching)

?

之前所講的命令,比如ls, mv, cp都可以接收多個(gè)參數(shù),比如:

$ls -l a.txt b.txt c.txt

就可以列出這三個(gè)文件的所有信息。

?

有時(shí)候,我們想列出工作目錄下所有的以.txt結(jié)尾的文件的信息,可以用下面的方式:

$ls -l *.txt

*.txt的寫(xiě)法就運(yùn)用了Linux通配表達(dá)式。它與正則表達(dá)式相類似,但語(yǔ)法有所不同。

?

Filename Pattern Matching ? ? ? 對(duì)應(yīng)含義

?

*?????????????????????????????? 任意多個(gè)任意字符

?

? ????????????????????????????? 任意一個(gè)字符

[kl]??????????????????????????? 字符k或者字符l

?

[0-4]?????????????????????????? 數(shù)字0到4字符中的一個(gè)

?

[b-e]?????????????????????????? b到e字符中的一個(gè)

?

[^mnp]????????????????????????? 一個(gè)字符,這個(gè)字符不是m,n,p

Linux會(huì)找到符合表達(dá)式的文件名,然后用這些文件名作為參數(shù)傳遞給命令。注意,當(dāng)使用rm的時(shí)候,要格外小心。下面兩個(gè)命令,只相差一個(gè)空格,但效果大為不同:

$rm * .txt

$rm *.txt

第一個(gè)命令會(huì)刪除當(dāng)前目錄下所有文件!

?

總結(jié)

touch, ls, mv, cp, rm, mkdir, rmdir

chmod, chown, chgrp

wild card

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享
站長(zhǎng)的頭像-小浪學(xué)習(xí)網(wǎng)月度會(huì)員