解析如何使用Linux命令下復制和重命名文件
2018-06-29 13:18:45
2803瀏覽
在現(xiàn)如今,隨著互聯(lián)網(wǎng)技術(shù)飛速的發(fā)展和進步,目前大多數(shù)便于語言都會涉及到命名,比如在Linux上如何復制和重命名文件呢?下面我們一起來看一下吧。
首先,我們來思考為什么你想要復制一個文件。你可能需要在另一個位置使用同一個文件,或者因為你要編輯該文件而需要一個副本,并且希望確保備有便利的備份以防萬一需要恢復原始文件。這樣做的顯而易見的方式是使用像cpmyfilemyfile-orig這樣的命令。
但是,如果你想復制大量的文件,那么這個策略可能就會變得很老。更好的選擇是:
在開始編輯之前,使用tar創(chuàng)建所有要備份的文件的存檔。
使用for循環(huán)來使備份副本更容易。
使用tar的方式很簡單。對于當前目錄中的所有文件,你可以使用如下命令:
$tarcfmyfiles.tar*
對于一組可以用模式標識的文件,可以使用如下命令:
$tarcfmyfiles.tar*.txt
在每種情況下,最終都會生成一個myfiles.tar文件,其中包含目錄中的所有文件或擴展名為.txt的所有文件。
一個簡單的循環(huán)將允許你使用修改后的名稱來制作備份副本:
$forfilein*
>do
>cp$file$file-orig
>done
當你備份單個文件并且該文件恰好有一個長名稱時,可以依靠使用tab來補全文件名(在輸入足夠的字母以便唯一標識該文件后點擊Tab鍵)并使用像這樣的語法將-orig附加到副本的名字后。
$cpfile-with-a-very-long-name{,-orig}
然后你有一個file-with-a-very-long-name和一個file-with-a-very-long-name-orig。
在Linux上重命名文件
重命名文件的傳統(tǒng)方法是使用mv命令。該命令將文件移動到不同的目錄,或原地更改其名稱,或者同時執(zhí)行這兩個操作。
$mvmyfile/tmp
$mvmyfilenotmyfile
$mvmyfile/tmp/notmyfile
但我們也有rename命令來做重命名。使用rename命令的竅門是習慣它的語法,但是如果你了解一些Perl,你可能發(fā)現(xiàn)它并不棘手。
有個非常有用的例子。假設你想重新命名一個目錄中的文件,將所有的大寫字母替換為小寫字母。一般來說,你在Unix或Linux系統(tǒng)上找不到大量大寫字母的文件,但你可以有。這里有一個簡單的方法來重命名它們,而不必為它們中的每一個使用mv命令。/A-Z/a-z/告訴rename命令將范圍A-Z中的任何字母更改為a-z中的相應字母。
$ls
AgendaGroup.JPGMyFile
$rename'y/A-Z/a-z/'*
$ls
agendagroup.jpgmyfile
你也可以使用rename來刪除文件擴展名。也許你厭倦了看到帶有.txt擴展名的文本文件。簡單刪除這些擴展名——用一個命令。
$ls
agenda.txtnotes.txtweekly.txt
$rename's/.txt//'*
$ls
agendanotesweekly
現(xiàn)在讓我們想象一下,你改變了心意,并希望把這些擴展名改回來。沒問題。只需修改命令。竅門是理解第一個斜杠前的s意味著“替代”。前兩個斜線之間的內(nèi)容是我們想要改變的東西,第二個斜線和第三個斜線之間是改變后的東西。所以,$表示文件名的結(jié)尾,我們將它改為.txt。
$ls
agendanotesweekly
$rename's/$/.txt/'*
$ls
agenda.txtnotes.txtweekly.tx
你也可以更改文件名的其他部分。牢記s/舊內(nèi)容/新內(nèi)容/規(guī)則。
$ls
draft-minutes-2018-03draft-minutes-2018-04draft-minutes-2018-05
$rename's/draft/approved/'*minutes*
$ls
approved-minutes-2018-03approved-minutes-2018-04approved-minutes-2018-05
在上面的例子中注意到,當我們在s/old/new/中使用s時,我們用另一個名稱替換名稱的一部分。當我們使用y時,我們就是直譯(將字符從一個范圍替換為另一個范圍)。
現(xiàn)在有很多復制和重命名文件的方法,最后想要了解更多關(guān)于Linux就業(yè)班或行業(yè)前景,請關(guān)注扣丁學堂官網(wǎng)、微信等平臺,扣丁學堂IT職業(yè)在線學習教育平臺為您提供權(quán)威的Linux視頻教程系統(tǒng),通過千鋒扣丁學堂金牌講師在線錄制的Linux視頻教程課程,讓你快速掌握Linux從入門到精通開發(fā)實戰(zhàn)技能??鄱W堂Linux技術(shù)交流群:422345477
【關(guān)注微信公眾號獲取更多的學習資料】
查看更多關(guān)于“Linux培訓資訊”的相關(guān)文章>>
標簽: