Centos8中如何更改資料夾中多個檔案的副檔名

夢共裡醉發表於2022-01-20
本教程將討論將檔案從特定副檔名更改為另一個副檔名的快速方法。我們將為此使用  迴圈、rename 。
方法一:使用迴圈

在目錄中遞迴更改副檔名的最常見方法是使用 shell 的 for 迴圈。我們可以使用 shell  提示使用者輸入目標目錄、舊的副檔名和新的副檔名以進行重新命名。以下是 內容:

[root@localhost ~]# vim rename_file.sh
#!/bin/bash
echo "Enter the target directory "
read target_dir
cd $target_dir
 
echo "Enter the file extension to search without a dot"
read old_ext
 
echo "Enter the new file extension to rename to without a dot"
read new_ext
 
echo "$target_dir, $old_ext, $new_ext"
 
for file in *.$old_ext
do
    mv -v "$file" "${file%.$old_ext}.$new_ext"
done;

Centos8中如何更改資料夾中多個檔案的副檔名Centos8中如何更改資料夾中多個檔案的副檔名
上面的指令碼將詢問使用者要處理的目錄,然後 cd 進入設定目錄。接下來,我們得到沒有點 .的舊副檔名。最後,我們獲得了新的副檔名來重新命名檔案。然後使用迴圈將舊的副檔名更改為新的副檔名。

其中 ${file%.$old_ext}.$new_ext意思為去掉變數 $file最後一個 .及其右面的 $old_ext副檔名,並新增 $new_ext新副檔名。

使用 mv -v,讓輸出資訊更詳細。

下面執行指令碼,將/root/test下面的以 .txt結尾的替換成 .log

[root@localhost ~]# chmod +x rename_file.sh 
[root@localhost ~]# ./rename_file.sh 
Enter the target directory 
/root/test
Enter the file extension to search without a dot
txt
Enter the new file extension to rename to without a dot
log
/root/test, txt, log
renamed 'file10.txt' -> 'file10.log'
renamed 'file1.txt' -> 'file1.log'
renamed 'file2.txt' -> 'file2.log'
renamed 'file3.txt' -> 'file3.log'
renamed 'file4.txt' -> 'file4.log'
renamed 'file5.txt' -> 'file5.log'
renamed 'file6.txt' -> 'file6.log'
renamed 'file7.txt' -> 'file7.log'
renamed 'file8.txt' -> 'file8.log'
renamed 'file9.txt' -> 'file9.log'

Centos8中如何更改資料夾中多個檔案的副檔名Centos8中如何更改資料夾中多個檔案的副檔名
如果想將.log結尾的更改回.txt,如下操作:
Centos8中如何更改資料夾中多個檔案的副檔名Centos8中如何更改資料夾中多個檔案的副檔名

方法二:使用rename

如果不想使用指令碼,可以使用 rename工具遞迴更改副檔名。如下是使用方法:

[root@localhost ~]# cd /root/test/
[root@localhost test]# rename .txt .log *.txt

Centos8中如何更改資料夾中多個檔案的副檔名Centos8中如何更改資料夾中多個檔案的副檔名

server.51cto.com/ManageDC-519389.htm


更改回.txt副檔名也同樣的操作:

[root@localhost test]# rename .log .txt *.log

Centos8中如何更改資料夾中多個檔案的副檔名Centos8中如何更改資料夾中多個檔案的副檔名

總結

本教程討論瞭如何將檔案從特定副檔名更改為另一個副檔名的快速方法。我們將為此使用 shell迴圈、rename命令。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2853225/,如需轉載,請註明出處,否則將追究法律責任。

相關文章