自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Linux上復(fù)制和重命名文件

系統(tǒng) Linux
cp 和 mv 之外,在 Linux 上有更多的復(fù)制和重命名文件的命令。試試這些命令或許會(huì)驚艷到你,并能節(jié)省一些時(shí)間。

[[233973]]

 cp 和 mv 之外,在 Linux 上有更多的復(fù)制和重命名文件的命令。試試這些命令或許會(huì)驚艷到你,并能節(jié)省一些時(shí)間。

Linux 用戶數(shù)十年來一直在使用簡單的 cpmv 命令來復(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 的方式很簡單。對(duì)于當(dāng)前目錄中的所有文件,你可以使用如下命令:

  1. $ tar cf myfiles.tar *

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

  1. $ tar cf myfiles.tar *.txt

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

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

  1. $ for file in *
  2. > do
  3. > cp $file $file-orig
  4. > done

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

  1. $ cp file-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è)操作。

  1. $ mv myfile /tmp
  2. $ mv myfile notmyfile
  3. $ mv myfile /tmp/notmyfile

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

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

  1. $ ls
  2. Agenda Group.JPG MyFile
  3. $ rename 'y/A-Z/a-z/' *
  4. $ ls
  5. agenda group.jpg myfile

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

  1. $ ls
  2. agenda.txt notes.txt weekly.txt
  3. $ rename 's/.txt//' *
  4. $ ls
  5. agenda notes weekly

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

  1. $ ls
  2. agenda notes weekly
  3. $ rename 's/$/.txt/' *
  4. $ ls
  5. agenda.txt notes.txt weekly.txt

你也可以更改文件名的其他部分。牢記 s/舊內(nèi)容/新內(nèi)容/ 規(guī)則。

  1. $ ls
  2. draft-minutes-2018-03 draft-minutes-2018-04 draft-minutes-2018-05
  3. $ rename 's/draft/approved/' *minutes*
  4. $ ls
  5. approved-minutes-2018-03 approved-minutes-2018-04 approved-minutes-2018-05

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

總結(jié)

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

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2023-11-25 17:13:49

Linux重命名文件

2019-09-03 08:57:52

Linux命令軟件

2009-12-22 15:28:51

Linux批量重命名文

2021-07-04 19:48:07

LinuxFreeDOS復(fù)制文件

2010-03-03 16:11:01

Linux ubant

2010-03-09 15:23:30

Linux批量重命名

2010-11-19 13:48:18

2019-11-11 10:20:10

Linux重命名命令

2011-03-04 09:48:21

PureFTPd

2018-10-31 15:30:11

Linux命令重命名

2023-08-01 08:26:24

Linux文件目錄

2019-10-15 13:29:24

LinuxLinux命令

2009-05-26 12:23:56

Linux變量文件命名

2017-03-01 14:16:36

Linux文件管理器隱藏文件

2022-03-28 08:47:26

Skanlite掃描文件Linux

2020-09-11 09:23:42

文件重命名Linux字符串

2021-01-31 18:51:11

移動(dòng)重命名Python

2020-06-09 07:42:30

重命名文件 Linux

2019-02-25 15:36:52

Linux復(fù)制文件遠(yuǎn)程系統(tǒng)

2024-09-04 08:02:12

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)