繼我們能在shell下愉快的“點(diǎn)擊鼠標(biāo)”,恣意地在系統(tǒng)的目錄間溜達(dá)后,我們肯定需要在系統(tǒng)中增增減減,刪刪改改,充分的使用和個(gè)性化自己的系統(tǒng)。現(xiàn)在,在自己的家目錄下新增一個(gè)以自己名字命名的文件。
一個(gè)新增文件的手段:touch示例:touch 文件名… 多個(gè)文件名用空格隔開,可以新增多個(gè)文件

新增一個(gè)文件的方式有很多種,但是有些方式,或者有些命令的作用本不是新增一個(gè)文件,新增文件可能只是一個(gè)附帶的功能,隨著不斷地學(xué)習(xí),會(huì)了解更多的新增文件的方式,這里先知道touch可以新增文件。
新增目錄命令:mkdir
mkdir是make directories的縮寫
示例:mkdir 文件夾名… 多個(gè)文件夾名用空格隔開,可以新增多個(gè)文件夾
好了,文件和文件夾都能創(chuàng)建了,常用的復(fù)制粘貼大法可是必修技能
復(fù)制文件或目錄命令:cp
cp是copy的縮寫
示例:
cp file… 目標(biāo)目錄,復(fù)制一個(gè)或者多個(gè)文件到目標(biāo)目錄,多個(gè)文件之間用空格隔
cp file1 file2 ,創(chuàng)建一個(gè)名為file2的file1副本到當(dāng)前目錄(如果已存在file2文件,那么會(huì)覆蓋舊文件,添加選項(xiàng)“-i”可以給出覆蓋確認(rèn)的提示)
cp -r dir1 dir2,復(fù)制目錄dir1中的內(nèi)容到目錄 dir2。如果目錄dir2不存在,創(chuàng)建目錄dir2,復(fù)制后,目錄dir2中的內(nèi)容和dir1中的一樣。 如果目錄dir2存在,則目錄dir1(和目錄中的內(nèi)容)將會(huì)被復(fù)制到dir2中。(“-r”遞歸復(fù)制,復(fù)制文件夾及其內(nèi)容必須添加該選項(xiàng))
移動(dòng)/重命名文件或目錄命令:mv
mv是move的縮寫
和cp命令的用法基本一致,只不過(guò)要注意的是,mv命令包含的兩種功能
示例:
mv file… 目標(biāo)目錄,移動(dòng)一個(gè)或者多個(gè)文件到目標(biāo)目錄,多個(gè)文件之間用空格隔開
mv file1 file2,將file1文件重命名為file2(如果已存在file2文件,那么會(huì)覆蓋舊文件,添加選項(xiàng)“-i”可以給出覆蓋確認(rèn)的提示)
mv dir1 dir2,dir2目錄存在,則dir1目錄及其內(nèi)容會(huì)被移動(dòng)到dir2中,如果dir2目錄不存在,那么重命名dir1為dir2
刪除文件或目錄命令:rm
rm是remove的縮寫
*在這里值得注意的是,shell下是沒(méi)有回收站這一說(shuō)的,在使用rm命令的時(shí)候要格外的小心,所以,刪除之前不妨再次列表展示一下要?jiǎng)h除的文件,確保萬(wàn)無(wú)一失。
示例:
rm file1 file2 …,刪除一個(gè)或多個(gè)文件,多個(gè)文件名之間用空格隔開
rm -r dir1 dir2 …,刪除一個(gè)或多個(gè)文件夾及其所包含的內(nèi)容,多個(gè)文件夾名字之間用空格隔開(“-r”遞歸刪除,刪除文件夾必須添加的選項(xiàng))
rm -rf file dir …,強(qiáng)制刪除file文件和dir文件夾,無(wú)論他們是否存在,不會(huì)給出相關(guān)提示(“-f”強(qiáng)制執(zhí)行,忽略不存在的目標(biāo),沒(méi)有相關(guān)提示)
鏈接命令:ln
在Windows中,我們經(jīng)常使用右鍵為一個(gè)文件創(chuàng)建快捷方式,在Linux下,同樣也可以做到。但是,在Linux中,使用“ln”創(chuàng)建的鏈接有軟硬之分。
創(chuàng)建軟鏈接
在硬盤的每個(gè)分區(qū)上,都有一個(gè)分區(qū)表,這其中記錄著這個(gè)文件系統(tǒng)的文件信息。比如某一條記錄會(huì)有文件的文件名,大小等,創(chuàng)建一個(gè)軟鏈接之后,軟鏈接在分區(qū)表中并不會(huì)記錄目標(biāo)文件的這些信息,而是記錄了目標(biāo)文件和分區(qū)表相關(guān)的信息,比如目標(biāo)文件的分區(qū)表信息在哪個(gè)盤符等等,并不記錄分區(qū)表信息的內(nèi)容。因?yàn)檐涙溄佑涗浀氖悄繕?biāo)文件的分區(qū)表信息,所以軟鏈接可以創(chuàng)建跨盤符的鏈接,可以對(duì)目錄創(chuàng)建鏈接,而且刪除這個(gè)軟鏈接不會(huì)對(duì)源文件造成任何影響,但是一旦刪除了源文件,那么這個(gè)軟鏈接就失效了,變成了一個(gè)垃圾鏈接,垃圾鏈接在“ls”查看詳細(xì)信息的時(shí)候會(huì)有特別的標(biāo)注,留意觀察一下。當(dāng)你打開一個(gè)軟鏈接的時(shí)候,實(shí)際上你打開的是軟鏈接指向的那個(gè)文件或者文件夾,打開之后的做的任何變動(dòng)都會(huì)反映到目標(biāo)文件上,但是你如果刪除一個(gè)軟鏈接,軟鏈接指向的目標(biāo)文件并不會(huì)被刪除,這是一個(gè)需要特別記住的地方。
示例:
ln -s target targetLink,為target文件創(chuàng)建一個(gè)名為targetLink的軟鏈接,target可以寫成相對(duì)或者絕對(duì)路徑的形式(“-s”聲明創(chuàng)建的鏈接是軟鏈接)
創(chuàng)建硬鏈接
記得之前在說(shuō)到“ls”命令的時(shí)候接觸到一個(gè)“-l”選項(xiàng),使用長(zhǎng)格式來(lái)顯示文件列表信息。顯示的內(nèi)容有一列叫做硬鏈接數(shù)量,這里就是說(shuō)的某個(gè)文件已經(jīng)創(chuàng)建的硬鏈接數(shù)量。硬鏈接就是文件在某個(gè)文件系統(tǒng)中的引用數(shù)量。每創(chuàng)建一個(gè)硬鏈接,分區(qū)表上就會(huì)多一條和源文件相同的分區(qū)表記錄來(lái)記錄硬鏈接名和對(duì)應(yīng)內(nèi)容的記錄,創(chuàng)建好的硬鏈接和源文件的所有信息都相同,也包括分區(qū)表記錄,為了能更好的說(shuō)明這一點(diǎn),需要為“ls”命令添加一個(gè)“-i”選項(xiàng),該選項(xiàng)意味著列表顯示文件的索引節(jié)點(diǎn),索引節(jié)點(diǎn)相同,意味著他們是同一個(gè)文件。因此,當(dāng)你創(chuàng)建一個(gè)硬鏈接,使用“ls -i”查看,你會(huì)發(fā)現(xiàn)目標(biāo)文件和硬鏈接的信息完全一致,當(dāng)然名字可能會(huì)不一樣。 硬鏈接的創(chuàng)建不能跨越盤符,因?yàn)樗麄儽仨氃谕粋€(gè)分區(qū)內(nèi),也不能使用在目錄上,當(dāng)一個(gè)文件的所有硬鏈接都被刪除,那么這個(gè)文件便沒(méi)有鏈接引用他,他本身所占用的磁盤空間也會(huì)被刪除。或許,你應(yīng)該猜得到,每個(gè)文件的文件名,就是他自身的第一個(gè)硬鏈接。
和軟鏈接一樣,打開硬鏈接就是打開目標(biāo)文件,所做的任何變動(dòng)都可以保留。當(dāng)你刪除一個(gè)硬鏈接,除非這個(gè)硬鏈接是最后一個(gè)硬鏈接(文件本身),否則不會(huì)刪除源文件。
示例:
ln target targetLink,為target文件創(chuàng)建一個(gè)硬鏈接targetLink,源文件名和硬鏈接名要在同一個(gè)分區(qū)下。