1. 程式人生 > >Linux下批量修改檔名

Linux下批量修改檔名

最近在Linux下裝上了Steam,裝了一個免費的遊戲Untruned,這遊戲之前在Windows下也玩過還不錯。

然而在漢化的過程中上出了一點小問題,這遊戲的語言包分為English和sChinese兩個語言包。放在了目錄下偏偏識別不出來,那我也就只能想辦法了,我使用常用的方法將English資料夾改名為English1,然後將sChinese資料夾改名為English,因為這遊戲內部並沒有語言設定的選項,所以我這樣做成功了,進遊戲一看已經漢化了。但是還有遊戲物品的名稱沒有漢化,然後同樣方式替換,結果發現每個物品的資料夾下屬性設定檔名稱都是English.dat,而我下載的漢化包檔名稱是sChinese.dat,然後資料夾又有很多層遞迴巢狀關係,怎麼辦呢?

這裡我選擇使用find+exec+rename 的用法,之前也看過人家用過find+awk+xargs的方法總感覺太麻煩,所以這裡就使用了以下命令來解決

find -name '*.dat' -exec rename sChinese English sChinese.dat {} \;
首先,find -name命令查詢以dat為字尾的檔案 ,後跟-exec 加你要執行的命令,我這裡用了rename方法,但是要注意的是我之前使用的時候一直報錯
Bareword "sChinese" not allowed while "strict subs" in use at (user-supplied code)Ubuntu

經過多方查詢發現這個錯誤是rename用法的錯誤,我使用的是Ubuntu16.04 LTS,同樣有人用Debian也會報這樣的錯誤,這是因為rename命令在這兩個系統中的用法做出了修改,在CentOS或者redhat裡,rename是三段式命令,而在Ubuntu中只需要輸入兩個引數即可,輸入下列命令以後,等待一下處理,發現所有目錄和子目錄下檔案都已經成功改名了~

find -name '*.dat' -exec rename 's/sChinese/English/' *.dat {} \;

相關推薦

linux批量修改檔名之rename

目錄: rename命令的幫助手冊 比如將資料夾下的gif檔案都重新命名為jpg檔案 rename命令的幫助手冊 $ man rename RENAME(1) Perl Programmers R

Linux批量修改檔名

最近在Linux下裝上了Steam,裝了一個免費的遊戲Untruned,這遊戲之前在Windows下也玩過還不錯。然而在漢化的過程中上出了一點小問題,這遊戲的語言包分為English和sChinese兩個語言包。放在了目錄下偏偏識別不出來,那我也就只能想辦法了,我使用常用的方

Linux批量修改檔名(rename)

1.rename命令批量修改檔名, 其實linux下可以使用別的辦法來批量修改檔名, 不過rename實在太方便了 比如把所有的表為cdb1_* 修改為cdb_*的 在本目錄下 只需要# rename 'cdb1' 'cdb' * 以前都是寫個for迴圈來做...想想多傻啊, 呵呵 rename還有更多

Linux批量修改檔案字尾名及shell指令碼中匹配檔名稱變數寫法

rename .txt.COMPLETED  .txt   *.txt.COMPLETED 為了完整起見,我這裡再用一些例子加以說明 ${ } 的一些特異功能: 假設我們定義了一個變數為: fi

Linux批量修改文件名(rename)

批量修改 rename1.rename命令批量修改文件名, 其實Linux下可以使用別的辦法來批量修改文件名, 不過rename實在太方便了比如把所有的表為cdb1_* 修改為cdb_*的在本目錄下只需要# rename ‘cdb1‘ ‘cdb‘ *以前都是寫個for循環來做...想想多傻啊, 呵呵ren

Linux批量修改文件及文件夾所有者及權限

批量修改 修改文件 topic 文件 lan xid href sta chm Linux下批量修改文件及文件夾所有者及權限需要使用到兩個命令,chmod以及chown 例:對/opt/Oracle/目錄下的所有文件與子目錄執行相同的權限變更: chmod -R 700 /

Linux批量修改後綴名

sources ron sed pre one rep oot source roo 1、用find和xargs添加後綴名 [[email protected] yum.repos.d]# ls -ltr total 32 -rw-r--r--. 1 r

linuxrename命令的用法——適合大批量修改檔名

linux下rename命令的用法——適合大批量修改檔名 在看鳥哥私房菜的時候,遇到了mv這個可以修改檔名的命令。後面還有一個命令,叫rename。鳥哥讓自己man幫助查詢。結果自己一看,發現這個命令居然可以批量的修改檔名。首先,看下man幫助裡面的說明: For example, given the fi

關於linux系統批量修改文件名和後綴

linux 字符串 總會遇到遇到處理文件的問題,比如文件後綴修改,以前都是寫shell,後來發現有個更簡單的方法rename1,在centos 下是用c 寫的 rename用法: a.txt 修改為 a.cc rename txt cc *.txt

Linux rename命令批量修改檔名

一般都是用mv,但是mv只能修改一個檔名,批量修改的話還得寫指令碼來實現 rename命令就可以了,可以使用萬用字元 [[email protected] test]# touch a.test.com b.test.com c.test.com [[email 

Linux: mv, rename單次及批次修改檔案名稱及字尾(批量修改檔名

在Windows 系統中,無論我們要重新命名資料夾或是檔案, 通常都點下右鍵後選擇重新命名即可, 如果對快捷鍵比較熟,直接按下F2 可以更快地達成目的。 而在Linux系統中,重新命名資料夾或檔案也可以透過同一個指令來達成,這個指令是mv ! mv 是move 的縮寫,

mac linux rename命令列批量修改檔名

我的mac使用命令列批量修改名字時發現居然沒有rename的指令: zsh: command not found: rename 所以使用HomeBrew先安裝一下: ➜ ~ brew install rename 完後可以直接使用簡單的一行命

MySQL+MyBatis批量修改數據的問題

void repo font mes fcc strac size subject joinpoint 今天處理數據批量的更新,場景是這樣子的,web站管理的字典功能,需要添加一個記錄的整體描述,以及詳細內容的描述。一個字典整體概述只有一組信息,但是其詳細內容,會有很多項,

Linux批量重命名的方法

rename name 文件 -a 舉例 創建 doc tex 正則 rename 1.不過它要用 perl 正則表達式來作為參數, 2.舉例如下: touch test{1..5}.txt ##使用通配符創建5個文件 rename ‘s/\.txt/\.doc/‘

(轉)linux passwd批量修改用戶密碼

如果 快速 引號 ini out 運行 每次 pass 行修改 linux passwd批量修改用戶密碼 原文:http://blog.csdn.net/xuwuhao/article/details/46618913 對系統定期修改密碼是一個很重要的安全常識,通常,我們

Linux批量添加用戶

linux下 cat -- swd 腳本 mark jpg ges 查看 首先要創建一個包含所有用戶名的文件,我使用的是user這個文件,這個文件裏面包含了6個用戶,如圖所示 腳本內容 #!/bin/bash read -p "輸入用戶密碼:" PA

Linux批量替換文件內容和文件名(轉)

lan 其中 xargs ava 提取 pat 內容 文件內容 nbsp 1、批量替換指定多個文件的文件內容 在指定目錄/your/path裏,查找包含old_string字符串的所有文件,並用new_string字符串替換old_string字符串。 sed -i

windows批量修改文件名

目錄 超過 ans 一個 修改文件名 cal 修改 .... dexp 工作中遇到需要批量按規則改名的問題,查了一下使用批處理能快速解決問題,記錄下來 建立一個bat批處理文件rename.bat,內容如下: @echo offset a=00set b=10setloca

linux如何修改系統時間

linux下如何修改系統時間 我們一般使用“date -s”命令來修改系統時間。比如將系統時間設定成2018年2月23日的命令如下。     #date -s 02/23/2018    將系統時間設定成下午11點12分0秒的命令如下。    #date -s 11:12:00    註意,這裏說的是系統

Linux如何修改網卡MAC地址

linux網上有很多關於linux下修改MAC地址的方法,大多依葫蘆畫瓢,似乎都沒驗證過,達不到修改的目的。經過我的詳細測試,最終成功解決了這個問題。 誤區一:#ifconfig eth0 down #ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE #ifconfig eth