0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在Linux上使用簡(jiǎn)單的cp和mv命令來復(fù)制和重命名文件

Linux愛好者 ? 來源:未知 ? 作者:李倩 ? 2018-06-25 14:02 ? 次閱讀

Linux 用戶數(shù)十年來一直在使用簡(jiǎn)單的cp和mv命令來復(fù)制和重命名文件。這些命令是我們大多數(shù)人首先學(xué)到的,每天可能有數(shù)百萬人在使用它們。但是還有其他技術(shù)、方便的方法和另外的命令,這些提供了一些獨(dú)特的選項(xiàng)。

首先,我們來思考為什么你想要復(fù)制一個(gè)文件。你可能需要在另一個(gè)位置使用同一個(gè)文件,或者因?yàn)槟阋庉嬙撐募枰粋€(gè)副本,并且希望確保備有便利的備份以防萬一需要恢復(fù)原始文件。這樣做的顯而易見的方式是使用像cp myfile myfile-orig這樣的命令。

但是,如果你想復(fù)制大量的文件,那么這個(gè)策略可能就會(huì)變得很老。更好的選擇是:

在開始編輯之前,使用tar創(chuàng)建所有要備份的文件的存檔。

使用for循環(huán)來使備份副本更容易。

使用tar的方式很簡(jiǎn)單。對(duì)于當(dāng)前目錄中的所有文件,你可以使用如下命令:

$tar cf myfiles.tar *

對(duì)于一組可以用模式標(biāo)識(shí)的文件,可以使用如下命令:

$tar cf myfiles.tar *.txt

在每種情況下,最終都會(huì)生成一個(gè) myfiles.tar 文件,其中包含目錄中的所有文件或擴(kuò)展名為 .txt 的所有文件。

一個(gè)簡(jiǎn)單的循環(huán)將允許你使用修改后的名稱來制作備份副本:

$forfile in *

> do

> cp$file$file-orig

> done

當(dāng)你備份單個(gè)文件并且該文件恰好有一個(gè)長(zhǎng)名稱時(shí),可以依靠使用 tab 來補(bǔ)全文件名(在輸入足夠的字母以便唯一標(biāo)識(shí)該文件后點(diǎn)擊 Tab 鍵)并使用像這樣的語法將 -orig 附加到副本的名字后。

$cpfile-with-a-very-long-name{,-orig}

然后你有一個(gè) file-with-a-very-long-name 和一個(gè) file-with-a-very-long-name-orig。

在 Linux 上重命名文件

重命名文件的傳統(tǒng)方法是使用 mv 命令。該命令將文件移動(dòng)到不同的目錄,或原地更改其名稱,或者同時(shí)執(zhí)行這兩個(gè)操作。

$mv myfile /tmp

$mv myfile notmyfile

$mv myfile /tmp/notmyfile

但我們也有 rename 命令來做重命名。使用 rename 命令的竅門是習(xí)慣它的語法,但是如果你了解一些 Perl,你可能發(fā)現(xiàn)它并不棘手。

有個(gè)非常有用的例子。假設(shè)你想重新命名一個(gè)目錄中的文件,將所有的大寫字母替換為小寫字母。一般來說,你在 Unix 或 Linux 系統(tǒng)上找不到大量大寫字母的文件,但你可以有。這里有一個(gè)簡(jiǎn)單的方法來重命名它們,而不必為它們中的每一個(gè)使用 mv 命令。 /A-Z/a-z/ 告訴 rename 命令將范圍 A-Z 中的任何字母更改為 a-z 中的相應(yīng)字母。

$ls

Agenda Group.JPG MyFile

$rename'y/A-Z/a-z/' *

$ls

agenda group.jpg myfile

你也可以使用 rename 來刪除文件擴(kuò)展名。也許你厭倦了看到帶有 .txt 擴(kuò)展名的文本文件。簡(jiǎn)單刪除這些擴(kuò)展名 —— 用一個(gè)命令。

$ls

agenda.txt notes.txt weekly.txt

$rename's/.txt//' *

$ls

agenda notes weekly

現(xiàn)在讓我們想象一下,你改變了心意,并希望把這些擴(kuò)展名改回來。沒問題。只需修改命令。竅門是理解第一個(gè)斜杠前的 s 意味著“替代”。前兩個(gè)斜線之間的內(nèi)容是我們想要改變的東西,第二個(gè)斜線和第三個(gè)斜線之間是改變后的東西。所以,$ 表示文件名的結(jié)尾,我們將它改為 .txt。

$ls

agenda notes weekly

$rename's/$/.txt/' *

$ls

agenda.txt notes.txt weekly.txt

你也可以更改文件名的其他部分。牢記 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

在上面的例子中注意到,當(dāng)我們?cè)?s/old/new/ 中使用 s 時(shí),我們用另一個(gè)名稱替換名稱的一部分。當(dāng)我們使用 y 時(shí),我們就是直譯(將字符從一個(gè)范圍替換為另一個(gè)范圍)。

總結(jié)

現(xiàn)在有很多復(fù)制和重命名文件的方法。我希望其中的一些會(huì)讓你在使用命令行時(shí)更愉快。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11207

    瀏覽量

    208721

原文標(biāo)題:在 Linux 上復(fù)制和重命名文件

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用Github的advcpmv來實(shí)現(xiàn)Linux中的cpmv命令的進(jìn)度條呢

    由于 cpmv 命令都是屬于 coreutils 工具包下的,因此我們的主要操作就是在編譯 coreutils 的時(shí)候加入補(bǔ)丁從而實(shí)現(xiàn)進(jìn)度條功能。
    的頭像 發(fā)表于 07-23 08:27 ?1710次閱讀

    新手求助,如何按規(guī)定對(duì)文件進(jìn)行重命名?

    比如,一個(gè)原始文件夾下有好幾個(gè)子文件夾,每個(gè)子文件夾下又有很多圖片,現(xiàn)在有一個(gè)EXCEL表格,每列代表一個(gè)子文件夾中圖片的新名字,要求按EXCEL表格的
    發(fā)表于 10-28 08:53

    linux文件復(fù)制和移動(dòng)

    linux文件復(fù)制、移動(dòng)與刪除命令為:cp,mv,rm
    發(fā)表于 07-19 07:34

    CyWDR文件也需要重命名嗎?

    我想克隆一個(gè)項(xiàng)目,作為一個(gè)非常類似的項(xiàng)目的開始(稍后為相同代碼的新版本)使用。是“將工作區(qū)/項(xiàng)目歸檔”到新文件夾并解壓縮它的推薦方法。然后打開被復(fù)制和右擊的項(xiàng)目并“重命名”主項(xiàng)目?關(guān)于“CyWDR
    發(fā)表于 08-15 14:02

    Linux文件復(fù)制、刪除和移動(dòng)命令

    Linux文件復(fù)制、刪除和移動(dòng)命令 Linux文件復(fù)制
    發(fā)表于 01-18 12:45 ?1245次閱讀

    基于Linuxmv 指令移動(dòng)文件和目錄命令

    當(dāng)你想要將文件從一個(gè)位置移動(dòng)到另一個(gè)地方并且不想復(fù)制它,那么mv 命令是完成這個(gè)任務(wù)的首選。
    的頭像 發(fā)表于 12-31 00:57 ?1.3w次閱讀
    基于<b class='flag-5'>Linux</b>的<b class='flag-5'>mv</b> 指令移動(dòng)<b class='flag-5'>文件</b>和目錄<b class='flag-5'>命令</b>

    LABVIEW中文件重命名的幾種方法——陳樹學(xué)《labview寶典》

    解決重命名的方法,下面演示一種比較簡(jiǎn)單的方法,實(shí)際也是移動(dòng)文件的方式。?五、原始方法從本質(zhì)上說,拷貝一個(gè)文件,實(shí)際就是以二進(jìn)制方式讀取所有
    發(fā)表于 01-03 16:35 ?4892次閱讀
    LABVIEW中<b class='flag-5'>文件</b><b class='flag-5'>重命名</b>的幾種方法——陳樹學(xué)《labview寶典》

    Linux操作系統(tǒng):三種最基本的文件重命名方法

    我們的工作生活中,不管是程序員還是非程序員,我們都會(huì)遇到過一個(gè)需求,那就是對(duì)一堆的文件進(jìn)行重命名。Windows下有很多優(yōu)秀的軟件可以幫助我們完成這個(gè)需求,而在
    的頭像 發(fā)表于 09-11 14:48 ?7868次閱讀
    <b class='flag-5'>Linux</b>操作系統(tǒng):三種最基本的<b class='flag-5'>文件</b><b class='flag-5'>重命名</b>方法

    如何使用cp和rsync命令復(fù)制文件和目錄

    復(fù)制文件和目錄是使用命令行時(shí)最常見的任務(wù)之一。Linux,有兩個(gè)
    的頭像 發(fā)表于 12-07 17:39 ?6845次閱讀

    Linux rename命令重命名多個(gè)文件與目錄

    使用`mv`命令重命名多個(gè)文件和目錄可能是一個(gè)乏味的過程,因?yàn)樗婕笆褂霉艿溃h(huán)等編寫復(fù)雜的命令。
    的頭像 發(fā)表于 12-09 17:41 ?2957次閱讀

    如何使用mv和rename命令重命名文件

    重命名文件和目錄是您經(jīng)常需要在Linux系統(tǒng)執(zhí)行的最基本任務(wù)之一。重命名單個(gè)文件
    的頭像 發(fā)表于 01-17 17:43 ?7598次閱讀

    討論Linux mv命令的一些實(shí)際示例

    mv 命令的最基本用途是重命名文件。那么讓我們看看如何重命名當(dāng)前目錄中的文件。
    的頭像 發(fā)表于 02-14 16:28 ?635次閱讀

    恒訊科技分析:如何使用cp命令Linux復(fù)制目錄?

    復(fù)制目錄是Linux中的一項(xiàng)基本任務(wù),它允許我們復(fù)制目錄、創(chuàng)建備份或在不同位置之間傳輸數(shù)據(jù)。Linux
    的頭像 發(fā)表于 06-26 17:14 ?655次閱讀

    linux系統(tǒng)基本操作命令

    Linux系統(tǒng)基本操作命令有很多,以下是一些常用的命令: ls :列出目錄內(nèi)容。 cd :改變當(dāng)前目錄。 mkdir :創(chuàng)建目錄。 touch :創(chuàng)建空白文件。
    的頭像 發(fā)表于 11-08 11:17 ?1656次閱讀

    總結(jié)linux命令行的主要用法

    和目錄操作、權(quán)限管理、進(jìn)程管理等內(nèi)容。 1.常用命令 1.1 文件和目錄操作 文件和目錄是Linux系統(tǒng)中最基本的單位,對(duì)它們的操作包括創(chuàng)建、刪除、
    的頭像 發(fā)表于 11-17 10:19 ?599次閱讀