04-操作文件與目錄

現(xiàn)在劣欢,我們準(zhǔn)備好做些實際工作了,本章將介紹如下命令:

  • cp:復(fù)制文件和目錄年鸳。
  • mv:移動或重命名文件和目錄。
  • mkdir:創(chuàng)建目錄搔确。
  • rm:移除文件和目錄。
  • in:創(chuàng)建硬鏈接和符號鏈接膳算。

這 5 個命令屬于最常使用的Linux命令之列,可用來操作文件與目錄涕蜂。

為何要使用這些命令行程序?

原因就在于命令行程序具有更強(qiáng)大的功能和靈活的操作机隙。

雖然使用圖形文件管理器能輕松實現(xiàn)簡單的文件操作萨西,但是對于復(fù)雜的任務(wù)有鹿,使用命令行程序更容易完成谎脯。

例如:怎樣僅因為文件在目標(biāo)目錄中不存在或存在舊的版本,就將所有HTML文件從一個目錄復(fù)制到目標(biāo)目錄里呢源梭?使用文件管理器完成很困難,而用命令行則很容易废麻。

一、通配符

一個使命令行如此強(qiáng)大的 shell 特性 —— 通配符烛愧。

由于 shell 需要經(jīng)常使用文件名,因此它提供了一些特殊字符來幫助我們快速指定一組文件名屑彻,這些特殊字符稱為通配符

通配符(也叫文件名轉(zhuǎn)換)允許用戶依據(jù)字符模式選擇文件名社牲。

1.通配符

通配符 匹配項
* 匹配任意多個字符(包括 0 個和 1 個)
? 匹配任一單個字符(不包括 0 個)
[characters] 匹配任意一個屬于字符集中的字符
[!characters] 匹配任意一個不屬于字符集中的字符
[[:class:]] 匹配任意一個屬于指定字符類中的字符

2.最常用的字符類

字符類 匹配項
[:alnum:] 匹配任意一個字母或數(shù)字
[:alpha:] 匹配任意一個字母
[:digit:] 匹配任意一個數(shù)字
[:lower:] 匹配任意一個小寫字母
[:upper:] 匹配任意一個大寫字母

通配符的使用使得為文件名構(gòu)建復(fù)雜的篩選標(biāo)準(zhǔn)成為可能。

3.示例

模式 匹配項
* 所有文件
g* 以g開頭的任一文件
b*.txt 以b開頭违寿,中間有任意多個字符,并以 .txt 結(jié)尾的任一文件
Data??? 以Data開頭藤巢,后面跟 3 個字符的任一文件
[abc]* 以 abc 中的任一個開頭的任一文件
BACKUP.[0-9] [0-9] [0-9] 以BACKUP.開頭,后面緊跟 3 個數(shù)字的任一文件
[[:upper:]]* 以大寫字母開頭的任一文件
[![:digit:]]* 不以數(shù)字開頭的任一文件
*[[:lower:]123] 以小寫字母 或 數(shù)字 1掂咒、2、3 中的任一個結(jié)尾的任一文件

通配符可以與任一個使用文件名為參數(shù)的命令一起使用绍刮。

4.字符范圍

可能遇到 [A-Z] 或 [a-z]形式的字符范圍表示法。這些都是傳統(tǒng)的 UNIX 表示法孩革,在早期的 Linux 版本中仍然奏效。

盡管它們?nèi)匀黄鹱饔孟ヲ冢褂脮r請務(wù)必小心,因為一旦配置不當(dāng)非剃,就會產(chǎn)生非預(yù)期的結(jié)果。目前要避免使用它們努潘,而是使用字符類。

二、mkdir-創(chuàng)建目錄

mkdir 命令是用來創(chuàng)建目錄的报慕。

1.格式

mkdir directory...

若參數(shù)后面帶有 3 個點號(如上),表示該參數(shù)可以重復(fù)眠冈。

(1)創(chuàng)建單個目錄

mkdir dir1

# 創(chuàng)建單個目錄,命名為 dir1 

(2)創(chuàng)建多個目錄

mkdir dir1 dir2 dir3

# 創(chuàng)建 3 個目錄蜗顽,分別命名為 dir1、dir2雇盖、dir3

三、cp-復(fù)制文件和目錄

cp 命令用來復(fù)制文件和目錄崔挖。它有 2 種不同的使用方式:

1.格式

(1)單個復(fù)制

cp item1 item2

將單個文件或目錄 item1 復(fù)制到文件或目錄 item2 中庵寞。

(2)多個復(fù)制

cp item... directory

將多個文件(或目錄)復(fù)制進(jìn)一個目錄中(若是文件復(fù)制進(jìn)另一個目錄薛匪,directory 必須已經(jīng)存在)。

2.cp 常用的選項

短選項 和 等價的長選項逸尖。

選項 含義
-a,--archive 復(fù)制文件和目錄及其屬性娇跟,包括所有權(quán)和權(quán)限。通常來說逞频,復(fù)制的文件具有用戶所操作文件的默認(rèn)屬性。
-i苗胀,--interactive 在覆蓋一個已存在的文件前,提示用戶進(jìn)行確認(rèn)基协。如果沒有指定該選項,cp會默認(rèn)覆蓋文件澜驮。
-r,--recursive 遞歸地復(fù)制目錄及其內(nèi)容杂穷。復(fù)制目錄時需要這個選項(或 -a 選項)
-u,--update 當(dāng)將文件從一個目錄復(fù)制到另一個目錄時耐量,只會復(fù)制那些目標(biāo)目錄中不存在的文件或是目標(biāo)目錄相應(yīng)文件的更新文件
-v趴拧,--verbose 復(fù)制文件時,顯示信息性消息著榴。
-f 強(qiáng)行復(fù)制文件或目錄, 不論目的文件或目錄是否已經(jīng)存在脑又,若目標(biāo)文件已存在,則會直接覆蓋原文件挂谍。

3.cp命令示例

命令 結(jié)果
cp file1 file2 將 file1 復(fù)制到 file2 叔壤。如果 file2 存在口叙,則會被 file1 的內(nèi)容覆蓋。如果 file2 不存在妄田,則創(chuàng)建 file2 。
cp -i file1 file2 同上疟呐,區(qū)別在于:在覆蓋一個已存在的文件前,會提示用戶進(jìn)行確認(rèn)启具。
cp file1 file2 dir1 將 file1 、file2 復(fù)制到目錄 dir1 里鲁冯。dir1 必須已經(jīng)存在。
cp dir1/* dir2 通過使用通配符薯演,將 dir1 中的所有文件復(fù)制到 dir2 中。dir2 必須已經(jīng)存在跨扮。
cp -r dir1 dir2 將 dir1 目錄(及其內(nèi)容)復(fù)制到 dir2 目錄中。如果 dir2 不存在帝嗡,創(chuàng)建 dir2 ,且包含與 dir1 目錄相同的內(nèi)容丈探。

四、mv-移動和重命名文件

mv 命令可以執(zhí)行文件移動和文件重命名操作,具體取決于如何使用它隘竭。

這 2 種情況下,完成操作之后动看,原來的文件名將不存在

mv 命令的使用方法與 cp 基本相似菱皆。

1.格式

(1)單個移動(或重命名)

mv item1 item2

將文件(或目錄 )item1 移動(或重命名)為 item2挨稿。

(2)多個移動(或重命名)

mv item... directory

將一個或多個條目從一個目錄移動到另一個目錄下京痢。

2.mv 選項

mv 命令很多選項與 cp 命令是共享的奶甘。

選項 含義
-i祭椰,--interactive 在覆蓋一個已存在的文件前,提示用戶進(jìn)行確認(rèn)方淤。如果沒有指定該選項,mv 會默認(rèn)覆蓋文件携茂。
-u,--update 將文件從一個目錄移動到另一個目錄讳苦,只移動那些目標(biāo)目錄中不存在的文件或是目標(biāo)目錄里相應(yīng)文件的更新文件。
-v医吊,--verbose 移動文件時顯示信息性消息。

3.示例

命令 結(jié)果
mv file1 file2 將 file1 移動到 file2卿堂。如果 file2 存在,則會被 file1 的內(nèi)容覆蓋
mv -i file1 file2 同上览绿,僅當(dāng) file2 存在時,覆蓋之前通知用戶確認(rèn)饿敲。
mv file1 file2 dir1 將 file1、file2 移動到目錄 dir1 下怀各。dir1必須已經(jīng)存在。
mv dir1 dir2 將目錄 dir1(及其內(nèi)容) 移動到目錄 dir2 下瓢对。如果 dir2 不存在,則創(chuàng)建目錄 dir2 硕蛹,將目錄 dir1 的內(nèi)容移動到 dir2 下,同時刪除目錄 dir1 法焰。

五、rm-刪除文件和目錄

rm 命令用來刪除文件和目錄埃仪。

1.格式

rm item...

其中,item是一個或多個文件(或目錄)的名稱贵试。

2.rm 選項

選項 含義
-i,--interactive 刪除一個已存在的文件前毙玻,提示用戶確認(rèn)。如果沒有這個選項桑滩,rm 命令會默認(rèn)刪除文件。
-r运准,--recursive 遞歸地刪除目錄。也就是說胁澳,如果刪除的目錄有子目錄的話,也要將其刪除韭畸。要刪除一個目錄,則必須指定該選項胰丁。
-f,--force 忽略不存在的文件并無需提示確認(rèn)锦庸。該選項會覆蓋 --interactive 選項。
-v甘萧,--verbose 刪除文件時顯示信息性消息。

3.示例

命令 結(jié)果
rm file1 在不提示用戶的情況下酿愧,刪除 file1。
rm -i file1 刪除 file1 前,提示用戶確認(rèn)。
rm -r file1 dir1 刪除 file1汇恤、dir1 以及它們的內(nèi)容。
rm -rf file1 dir1 同上基括,當(dāng) file1 或 dir1 不存在時,rm 仍會繼續(xù)執(zhí)行风皿,且不提示用戶。

4.小心 rm 命令

Linux 并不包含還原刪除操作的命令桐款。一旦使用 rm 命令,就徹底地刪除了魔眨。Linux 系統(tǒng)默認(rèn)用戶是明智的,并清楚自己在干什么遏暴。

六、ln-創(chuàng)建鏈接

ln 命令可用來創(chuàng)建硬鏈接 或是 符號鏈接朋凉。它的使用方式有兩種:

1.格式

(1)創(chuàng)建硬鏈接

ln file link

用來創(chuàng)建硬鏈接醋安。

(2)創(chuàng)建符號鏈接

ln -s item link

用來創(chuàng)建符號鏈接杂彭,這里的item可以是文件也可以是目錄茬故。

2.硬鏈接

? 硬鏈接是最初 UNIX 用來創(chuàng)建鏈接的方式,符號鏈接較之更為先進(jìn)磺芭。

? 默認(rèn)情況下,每個文件有一個硬鏈接钾腺,該硬鏈接會給文件起名字。當(dāng)創(chuàng)建一個硬鏈接的時候放棒,也為這個文件創(chuàng)建了一個額外的目錄條目

? 硬鏈接 和 文件本身沒有什么區(qū)別间螟。與包含符號鏈接的目錄列表不同损肛,包含硬鏈接的目錄列表沒有特別的鏈接指示說明荣瑟。當(dāng)硬鏈接被刪除時治拿,只是刪除了這個鏈接,但是文件本身的內(nèi)容依然存在(也就是粟焊,該空間沒有釋放),除非該文件的所有鏈接都被刪除了项棠。

? 因為會經(jīng)常遇到它們,了解硬鏈接就顯得特別重要合瓢。但是現(xiàn)在大多使用的是符號鏈接。

(1)兩條重要的局限性

① 硬鏈接不能引用自身文件系統(tǒng)以外的文件晴楔。(也就是,鏈接不能引用與該鏈接不在同一磁盤分區(qū)的文件税弃。)

② 硬鏈接無法引用目錄。

3.符號鏈接

? 符號鏈接是為了克服硬鏈接的局限性而創(chuàng)建的则果。

? 符號鏈接是通過創(chuàng)建一個特殊類型的文件來起作用的,該文件包含了指向引用文件或目錄的文本指針西壮。從這點上看叫惊,符號鏈接與 Windows 系統(tǒng)下的快捷方式非常相似款青,但是霍狰,符號鏈接要早于 Windows 的快捷方式很多年饰及。

? 符號鏈接指向的文件與符號鏈接自身幾乎沒有區(qū)別。例如:將一些東西寫進(jìn)符號鏈接里旋炒,那么這些東西同樣也寫進(jìn)了引用文件签杈。而當(dāng)刪除一個符號鏈接時,刪除的只是符號鏈接而沒有刪除文件本身答姥。如果先于符號鏈接之前刪除文件,那么這個鏈接依然存在鹦付,但卻不指向任何文件。此時敲长,這個鏈接就稱為壞鏈接。在很多實現(xiàn)中祈噪,ls 命令會用不同的顏色來顯示壞鏈接,比如紅色辑鲤,從而顯示它們的存在杠茬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載月褥,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者瓢喉。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市栓票,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哆窿,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挚躯,死亡現(xiàn)場離奇詭異,居然都是意外死亡擦秽,警方通過查閱死者的電腦和手機(jī)漩勤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門缩搅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來越败,“玉大人硼瓣,你說我怎么就攤上這事√美穑” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵瘟栖,是天一觀的道長。 經(jīng)常有香客問我半哟,道長,這世上最難降的妖魔是什么寓涨? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮嘴脾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘译打。我一直安慰自己,他們只是感情好奏司,可當(dāng)我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布樟插。 她就那樣靜靜地躺著,像睡著了一般黄锤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸵熟,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機(jī)與錄音流强,去河邊找鬼呻待。 笑死队腐,一個胖子當(dāng)著我的面吹牛蚕捉,可吹牛的內(nèi)容都是我干的柴淘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼悠就,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了梗脾?” 一聲冷哼從身側(cè)響起盹靴,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎稿静,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體改备,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年盐捷,在試婚紗的時候發(fā)現(xiàn)自己被綠了默勾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碉渡。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡母剥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出环疼,到底是詐尸還是另有隱情,我是刑警寧澤炫隶,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站爸吮,受9級特大地震影響芬膝,放射性物質(zhì)發(fā)生泄漏形娇。R本人自食惡果不足惜锰霜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一桐早、第九天 我趴在偏房一處隱蔽的房頂上張望癣缅。 院中可真熱鬧哄酝,春花似錦友存、人聲如沸陶衅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至罩句,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間门烂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工屯远, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人氓润。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像挨措,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子浅役,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,976評論 2 355