有同學問linux下怎樣批量更改檔案字尾名,這個問題被別人問到三次了,所以這裡給出幾個解決方法
一.rename解決
1. ubuntu系統下
rename 's//.c//.h/' ./*
把當前目錄下的字尾名為.c的檔案更改為.h的檔案
2. centos5.5系統下
rename .c .h *.c
把當前目錄下的字尾名為.c的檔案更改為.h的檔案
二.shell 指令碼解決
#!/bin/bash
#find ./ -name *.c | while read i
doecho "$i";
mv $i.c $i.h
done
三.find xargs 解決
find ./ -name "*.c" | awk -f "." '' | xargs -i -t mv ./{}.c ./{}.h
注意,第三種方案是遞迴的更改,會更改當前目錄下及其子目錄下所有匹配檔案
四.參考:
linux下批量修改檔名
rename 的一種用法。
一:問題的提出
比如我的/home/cyq/cyq 有 m.php;1 n.php;1 倆個檔案,怎麼將檔名的 ;1 去掉。
www.linuxidc.com@linuxidc-desktop:~/cyq$ dir
m.php;1 n.php;1 筆記
www.linuxidc.com@linuxidc-desktop:~/cyq$
二:問題的解決
www.linuxidc.com@linuxidc-desktop:~/cyq$ rename 's//.php;1//.php/' ./*
這樣執行就好了,結果如下:
www.linuxidc.com@linuxidc-desktop:~/cyq$ dir
m.php;1 n.php;1 筆記
www.linuxidc.com@linuxidc-desktop:~/cyq$ rename 's//.php;1//.php/' ./*
www.linuxidc.com@linuxidc-desktop:~/cyq$ dir
m.php n.php 筆記
www.linuxidc.com@linuxidc-desktop:~/cyq$
三:解釋
rename 's//.php;1//.php/' ./*
格式 :
rename '命令引數/原串/替換後的串/' 目錄檔案
rename 表示重新命名
s 表示替換
Linux批量更改檔案字尾名
今天又有同學問linux下怎樣批量更改檔案字尾名,這個問題被別人問到三次了,所以這裡給出幾個解決方法 一.rename解決 1.ubuntu系統下 rename s c h 把當前目錄下的字尾名為.c的檔案更改為.h的檔案 2.centos5.5系統下 rename c h c 把當前目錄下的字尾名...
python 批量更改字尾名
coding utf 8 import os if name main old ext input please input the old ext new ext input please input the new ext for path,dirs,filenames in os.walk r...
linux 批量修改檔案字尾名
今天遇到的乙個問題,要將一批jpg檔案字尾名更改為png,憑感覺能用awk指令進行修改,就進行了嘗試。想到的思路是 先列舉出檔名稱,再用awk對檔名稱進行處理分割,最後將字尾名進行修改。首先列舉出檔名稱,得到如圖 之後考慮獲取名稱,如 abad.jpg 再將名稱以 號分割,得到名稱 abad 再進行...