在 Linux 上複製和重命名文件 | Linux 中國

2021-12-25 Linux中國

cp 和 mv 之外,在 Linux 上有更多的複製和重命名文件的命令。試試這些命令或許會驚豔到你,並能節省一些時間。

Linux 用戶數十年來一直在使用簡單的 cp 和 mv 命令來複製和重命名文件。這些命令是我們大多數人首先學到的,每天可能有數百萬人在使用它們。但是還有其他技術、方便的方法和另外的命令,這些提供了一些獨特的選項。

首先,我們來思考為什麼你想要複製一個文件。你可能需要在另一個位置使用同一個文件,或者因為你要編輯該文件而需要一個副本,並且希望確保備有便利的備份以防萬一需要恢復原始文件。這樣做的顯而易見的方式是使用像 cp myfile myfile-orig 這樣的命令。

但是,如果你想複製大量的文件,那麼這個策略可能就會變得很老。更好的選擇是:

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

使用 tar 的方式很簡單。對於當前目錄中的所有文件,你可以使用如下命令:

$ tar cf myfiles.tar *

對於一組可以用模式標識的文件,可以使用如下命令:

$ tar cf myfiles.tar *.txt

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

一個簡單的循環將允許你使用修改後的名稱來製作備份副本:

$ for file in *

> do

> cp $file $file-orig

> done

當你備份單個文件並且該文件恰好有一個長名稱時,可以依靠使用 tab 來補全文件名(在輸入足夠的字母以便唯一標識該文件後點擊 Tab 鍵)並使用像這樣的語法將 -orig 附加到副本的名字後。

$ cp file-with-a-very-long-name{,-orig}

然後你有一個 file-with-a-very-long-name 和一個 file-with-a-very-long-name-orig。

在 Linux 上重命名文件

重命名文件的傳統方法是使用 mv 命令。該命令將文件移動到不同的目錄,或原地更改其名稱,或者同時執行這兩個操作。

$ mv myfile /tmp

$ mv myfile notmyfile

$ mv myfile /tmp/notmyfile

但我們也有 rename 命令來做重命名。使用 rename 命令的竅門是習慣它的語法,但是如果你了解一些 Perl,你可能發現它並不棘手。

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

$ ls

Agenda Group.JPG MyFile

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

$ ls

agenda group.jpg myfile

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

$ ls

agenda.txt notes.txt weekly.txt

$ rename 's/.txt//' *

$ ls

agenda notes weekly

現在讓我們想像一下,你改變了心意,並希望把這些擴展名改回來。沒問題。只需修改命令。竅門是理解第一個斜槓前的 s 意味著「替代」。前兩個斜線之間的內容是我們想要改變的東西,第二個斜線和第三個斜線之間是改變後的東西。所以,$ 表示文件名的結尾,我們將它改為 .txt。

$ ls

agenda notes weekly

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

$ ls

agenda.txt notes.txt weekly.txt

你也可以更改文件名的其他部分。牢記 s/舊內容/新內容/ 規則。

$ ls

draft-minutes-2018-03 draft-minutes-2018-04 draft-minutes-2018-05

$ rename 's/draft/approved/' *minutes*

$ ls

approved-minutes-2018-03 approved-minutes-2018-04 approved-minutes-2018-05

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

總結

現在有很多複製和重命名文件的方法。我希望其中的一些會讓你在使用命令行時更愉快。

via: https://www.networkworld.com/article/3276349/linux/copying-and-renaming-files-on-linux.html

作者:Sandra Henry-Stocker[2] 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關焦點

  • 在 Linux 上複製和重命名文件
    (點擊上方公眾號,可快速關注)英文:Sandra Henry-stocker,翻譯:Linux中國/geekpilinux.cn
  • Linux下文件或文件夾的複製(拷貝)
    前言在linux中,經常會用到文件或者文件夾的複製,要做到將一個文件複製到本機的另一個位置,就要學會使用linux的cp命令;如果是把一個文件複製到可以訪問的網絡機器的某個位置,那麼就要用到scp命令,scp代表遠程拷貝。
  • linux cp命令參數及用法詳解---linux 複製文件命令cp
    ] 來源檔(source) 目的檔(destination)[root@linux ~]# cp [options] source1 source2 source3 …. directory參數:-a :相當於 -pdr 的意思;-d :若來源文件為連結文件的屬性(link file),則複製連結文件屬性而非檔案本身;-f :
  • Linux 文件和文件夾權限詳解
    Linux 文件和文件夾權限詳解一點PHP建站技術分享之linux權限探討,很多初學者只是在練習的時候使用過幾次命令,例如chmod又或者chown等,但是很少會在實際中會去關心這個問題,下面一點博主詳細給大夥分析linux中權限這一問題。
  • Python學習第173課——Linux複製文件命令
    假設在linux_intro這個文件夾裡面,我們放了一個文件,這個文件其實也可以通過命令,複製到red_hat和full_stack裡面。那麼如何實現呢?我們先通過cd linux_intro這個命令,把目錄切換到linux_intro裡面,然後通過touch linux_oprate.txt這個命令,在linux_intro這個文件夾裡面生成 linux_oprate.txt這個文件。生成之後,還可以通過ls查看一下。關於touch,我們可以通過man touch去查看它的說明書。
  • 如何在 Linux 中複製文件到多個目錄中
    在本篇中,我們會用一個簡單的方法在 Linux 中用一個命令來將目錄複製到多個文件夾中。在 Linux 中,cp 命令[2]常被用於從一個文件夾中複製文件到另一個文件夾中,最簡單的語法如下:# cp [options….] source(s) destination另外,你也可以使用高級複製命令[3],它可以在複製大的文件或文件夾[4]時顯示進度條。
  • Python學習第174課——Linux移動文件、重命名文件、刪除文件命令
    上節我們學習了複製文件的命令,cp就是copy的簡寫。這節我們繼續學習其他的命令。●移動文件移動文件使用命令:mv 要移動的文件 移動到哪裡mv就是move的簡寫。我們桌面上的linux文件夾裡面的game文件夾,裡面只有一個mygame,沒有其他的東西,如下圖:而在linux_intro裡面有個文件linux_oprate.txt,現在我們要把linux_oprate.txt這個文件移動到game文件夾裡面,就可以使用命令:mv linux_intro/linux_oprate.txt game然後我們查看下
  • 如何在 Linux 伺服器上設置 ulimit 和文件描述符數限制 | Linux 中國
    簡介:在生產環境中遇到打開文件數這類的挑戰如今已是司空見慣的事情了。因為許多應用程式是基於 Java 和 Apache 的,安裝和配置它們可能會導致打開過多的文件(文件描述符)。如果打開的文件描述符超過了默認設置的限制,就可能會面臨訪問控制問題,受阻於打開文件的挑戰。許多生產環境因此而陷入停滯狀態。
  • Linux 上無痛文件提取 | Linux 中國
    https://linux.cn/article-12410-1.html作者:Sandra Henry-stocker譯者:geekpi從 Linux 系統的存檔中提取文件沒有拔牙那麼痛苦,但有時看起來更複雜。在這篇文章中,我們將看看如何輕鬆地從 Linux 系統中可能遇到的幾乎所有類型的存檔中提取文件。
  • Linux常用文件類別有哪些 詳細解讀Linux不同類型的文件
    在linux上,任何軟體和I/O設備都被視為文件且Linux中的文件名最大支持256個字符,分別可以用A~Z,a~z,0~9等字符來命名。和windows不同,linux中文件名是區分大小寫的,所有的UNIX系列目錄都遵循這個規則。
  • 開發效率|Linux常用文件操作命令總結,非常實用
    命令是再熟悉不過了,在實際的開發工作中,也都是經常在linux環境上開發,包括解決線上問題,很多開發都會使用到linux命令,在面試中,一些面試官也會相應的問幾個linux命令,如果你不會這些命令,那到時候就尷尬了,我總結了幾個在實際開發中常用的linux命令分享給大家。
  • VMware創建的Linux虛擬機如何設置共享文件夾
    創建共享文件夾則很好的解決了同步windows系統和linux系統文件的問題,不用再進行拖拽,直接創建一個文件夾放置文件,兩個系統都可以進行操作,但是為了防止文件誤操作,提醒大家還是儘量複製到其他文件夾進行操作。
  • Linux文件的常用操作命令
    linux文件操作常用指令1、系統命令runlevel # 查看當前的運行級別systemctl status firewalld # 開啟網絡服務功能stop # 關閉restart # 重啟查看你當前所在的目錄cd # 切換目錄ls # 查看顯示目錄的內容du # 統計目錄和文件空間的佔用情況mkdir # 創建新目錄rmdir # 刪除空目錄touch # 創建文件rm # 刪除文件
  • Linux運維之Linux文件管理
    文件名稱區分大小寫( 大小寫敏感還需要看具體的文件系統格式 ),以.開頭的為隱藏文件,路徑用/來進行分割(windows中使用\來分割),文件有兩個種類:元數據與數據本身.在操作linux系統時,通常會遵循以下的分層結構規則:LSB (Linux Standard Base) / FHS
  • Linux文件權限基本屬性圖文詳解
    Linux 系統的每一個文件或目錄都有訪問權限,這些訪問權限決定了哪些用戶和組群能訪問文件和能執行的操作。【查看文件權限】使用ls -l 命令可以顯示文件的屬性以及文件所屬的用戶和組。一個目錄同時具有讀權限和執行權限才可以打開並查看內部文件,而一個目錄要有寫權限才允許在其中創建其它文件,這是因為目錄文件實際保存著該目錄裡面的文件的列表等信息。3.連結數文件屬性後面的數字代表連結到該文件所在的 inode 結點的文件名數目。
  • Linux chmod目錄權限命令圖文詳解
    在Linux文件系統模型中,每個文件都有一組9個權限位用來控制誰能夠讀寫和執行該文件的內容。普通文件大家都了解,這裡說說目錄的情況。
  • linux基礎應用(NFS文件共享)
    NFS簡介NFS(Network File System)網絡文件系統,由NFS伺服器端和NFS客戶端構成,通過網絡(一般是區域網)使不同主機系統,可以彼此共享文件。(RPC指定每個NFS功能所對應的埠,並且通知客戶端,使客戶端可連接到相應的埠上)NFS工作流程先啟動NFS伺服器端的RPC服務並開啟111埠,然後啟動NFS伺服器端,NFS會隨機使用一些埠,然後NFS就向PRC註冊這些埠,RPC記錄這些埠等待客戶端RPC的請求,啟動客戶端RPC,向伺服器端
  • Linux文件目錄操作常用命令詳解:操作文件命令
    下面分享一些常用的Linux文件目錄操作基本命令。1.ls ls命令主要是顯示列印出目錄下的檔案或者目錄等,常用的參數如下:    -a:全部的檔案連同隱藏檔案一起輸出   -l:完整的顯示檔案的信息,包括權限,屬性   -d:僅顯示目錄本身,不顯示目錄中的文件顯示用戶家目錄的信息:ls -al顯示目錄本身
  • 如何在Linux終端中複製和粘貼文本、文件和文件夾
    複製和粘貼是計算機上最常用的操作之一。使用Ctrl+ C和Ctrl+ V鍵盤快捷鍵很容易做到,但是在Linux終端上卻不是那麼簡單。您有幾種選擇可以完成工作。這是在Linux終端中複製和粘貼文本,文件和目錄的方法。複製和粘貼文字如果您只想在終端中複製一段文本,您要做的就是用滑鼠突出顯示該文本,然後按Ctrl+ Shift+ C進行複製。
  • 使用cat命令在Linux中組合文本文件
    然後可以將合併的文本保存到另一個文本文件中。 在本教程中,您將學習如何使用cat命令將兩個或多個文件中的文本合併為一個文件。 這將幫助您從普通初學者獲得Ubuntu上的高級用戶狀態。 我們在Ubuntu 18.04 LTS系統上運行了本教程中提到的命令。