Linux運維基礎之rename命令詳解

Linux運維基礎之rename命令詳解

文章目录

  • 如何安裝 rename 命令
  • 如何使用 rename
  • 1. 替換檔名中的字串
  • 2. 為檔名新增字首
  • 3. 刪除副檔名
  • 4. 將檔名轉換為小寫
  • 5. 更改副檔名
  • 6. 從檔名中刪除字尾
  • 7. 用下劃線替換檔名中的空格
  • 8. 在不更改副檔名的情況下為檔名新增字尾
  • 更多 Linux 命令

Linux運維基礎之rename命令詳解

Linux 命令 rename  旨在根據指定規則更改檔案和目錄的名稱。它不僅是一個簡單的重新命名工具,還允許使用者使用正規表示式執行批量重新命名操作,因此是系統管理員和開發人員的必備命令。

與用於移動或重新命名檔案的 mv 命令類似,rename 命令具有更大的靈活性和控制性。系統管理員、程式設計師和資料分析師等 IT 專業人員常用它來有效管理大型檔案集。

如何安裝 rename 命令

rename 命令的可用性可能因 Linux 發行版而異。下面,我將概述如何為一些常見發行版安裝和解除安裝 rename 命令:

基於 Debian 的系統 (e.g., Ubuntu)

安裝:

sudo apt-get update
sudo apt-get install rename

解除安裝:

sudo apt-get remove rename

基於 RedHat 的系統 (e.g., Fedora, CentOS)

安裝:

sudo dnf install prename

解除安裝:

sudo dnf remove prename

Arch Linux

安裝:

sudo pacman -S perl-rename

解除安裝:

sudo pacman -R perl-rename

openSUSE

安裝:

sudo zypper install rename

解除安裝:

sudo zypper remove rename

如何使用 rename

1. 替換檔名中的字串

語法: rename 's/old/new/' *

說明: 將當前目錄下所有檔名中的字串 “old” 替換為 “new”。

示例: rename 's/test/demo/' *

Output:

testfile1.txt renamed as demofile1.txt
testfile2.txt renamed as demofile2.txt

當前目錄中所有名稱中包含 test 的檔案現在都替換為 demo

2. 為檔名新增字首

語法: rename 's/^/prefix_/' *

說明: 在當前目錄下所有檔名的開頭新增 “prefix_”。

示例: rename 's/^/sample_/' *

Output:

file1.txt renamed as sample_file1.txt
file2.txt renamed as sample_file2.txt

現在,當前目錄下的所有檔案都以 sample_ 開頭。

3. 刪除副檔名

語法: rename 's/\.ext$//' *

說明: 刪除當前目錄中所有匹配檔名的 “.ext” 副檔名。

示例: rename 's/\.txt$//' *

Output:

document.txt renamed as document
notes.txt renamed as notes

已刪除當前目錄下檔案的所有 .txt 副檔名。

4. 將檔名轉換為小寫

語法: rename 'y/A-Z/a-z/' *

說明: 將當前目錄下檔名中的所有大寫字母轉換為小寫字母。

示例: rename 'y/A-Z/a-z/' *

Output:

FILE1.TXT renamed as file1.txt
FILE2.TXT renamed as file2.txt

將當前目錄中所有大寫字母的檔名改為小寫。

5. 更改副檔名

語法: rename 's/\.oldext$/.newext/' *

說明: 將當前目錄中所有匹配檔名的副檔名從”.oldext “更改為”.newext”。

示例: rename 's/\.jpg$/.png/' *

Output:

image1.jpg renamed as image1.png
image2.jpg renamed as image2.png

當前目錄中所有檔案的 .jpg 副檔名都已更改為 .png

6. 從檔名中刪除字尾

語法: rename 's/suffix$//' *

說明: 刪除當前目錄下所有檔名末尾的 “字尾”。

示例: rename 's/_backup$//' *

Output:

file1_backup.txt renamed as file1.txt
file2_backup.txt renamed as file2.txt

當前目錄中所有以 _backup 結尾的檔案現在都去掉了字尾。

7. 用下劃線替換檔名中的空格

語法: rename 's/ /_/' *

說明: 用下劃線替換當前目錄下檔名中的所有空格。

示例: rename 's/ /_/' *

Output:

my file.txt renamed as my_file.txt
another file.txt renamed as another_file.txt

當前目錄中所有帶有空格的檔名現在都用下劃線代替了空格。

8. 在不更改副檔名的情況下為檔名新增字尾

語法: rename 's/(\.\w+)$/_suffix$1/' *

說明: 在當前目錄下所有副檔名前新增”_suffix”。

示例: rename 's/(\.\w+)$/_edited$1/' *

Output:

file1.txt renamed as file1_edited.txt
file2.jpg renamed as file2_edited.jpg

當前目錄下的所有檔案現在都會在副檔名前新增 _edited

更多 Linux 命令

目錄操作 rmdir · cd · pwd · exa · ls
檔案操作 cat · cp · dd · less · touch · ln · rename · more · head
檔案系統操作 chown · mkfs · locate
網路 ping · curl · wget · iptables · mtr
搜尋和文字處理 find · grep · sed · whatis · ripgrep · fd · tldr
系統資訊和管理 env · history · top · who · htop · glances · lsof
使用者和會話管理 screen · su · sudo · open

評論留言