shell腳本重命名
① linux shell 腳本編程實現 將指定的目錄的所有*.gif文件都重命名為*.jpg 利用字元串提取和修改來實現
1.touch一個腳本文件rfe.sh: touch rfe.sh
2.編輯mv.sh,把你找到的內容添加到腳本中:vi rfe.sh
3.給腳本執行的許可權:chmod +x rfe.sh
4.執行:./rfe.sh
② 如何用shell腳本重命名不同目錄下具有相同文件名的文件
看看你的Linux是不是debian,在這個版本下有個命名MMV
如果沒有可以這樣安裝 新建文件夾命令查看《Linux就該這么學》都是一樣的
mmv 程序可在基於 Debian 的系統的默認倉庫中使用。 要想在 Debian、Ubuntu、Linux Mint 上安裝它,請運行以下命令:
$ sudoapt-get install mmv
③ 如何使用shell腳本遠程登陸重命名
對你的這個問題,我有以下疑問:
1、遠程登陸的伺服器是否支持mv的命令?
2、使用什麼方式登錄伺服器(ftp/telnet)
④ 怎麼用shell腳本將文件名改名
修改文件名可以有不同的命令方式,比如rename, mv都可以實現
對於單個的文件,可以直接使用以上的命令,那如果有大量的類似格式的文件名需要修改成其他格式的,該如何呢?
比如某次測試後,保存的文件為 Lan1.txt, Lan2.txt,....Lan100.txt
這一百個文件需要在前面添加前綴變成類似 ch7_Lan1.txt,如果你還想使用mv來一個一個...多痛苦啊
當前文件夾下,文件修改有4種方式
1. 使用while Loop加 ${//}來實現Lan到 ch7_Lan的替換
點擊(此處)折疊或打開
find . -name "Lan*txt" -type f | read files
do
new=${files/Lan/ch7_Lan}
mv $files $new
done
2. 充分利用 awk的分隔符功能來實現
點擊(此處)折疊或打開
ls *Lan* | awk 'BEGIN{FS="Lan";OFS="ch7_Lan"}{printf "mv "$0" ";$1=$1;print $0}' | sh
首先,修改 FS和 OFS,輸入和輸出的分隔符
其次,使用 awk中的命令,拼接 「mv Lan1.txt ch7_Lan1.txt」這條命令
最後,使用|sh來執行一個 shell命令來完成 mv動作
其中,$1=$1是必須的,這個是完成 Lan===> ch7_Lan的關鍵(其實是可以使用 $2=$2等來替換,只要一個賦值動作而已)
奇怪的是,難道沒有賦值動作,分隔符的改變就不能檢測出來么??
3. 使用 awk的內置命令,gsub和 system來實現替換和命令執行
點擊(此處)折疊或打開
ls "*Lan*" | awk '{org=$0;gsub("Lan", "ch7_Lan");system("mv "org" "$1)}'
首先保存原始的數據
其次修改 Lan為 ch_Lan
最後執行mv動作
⑤ 使用shell對文件重命名
需要把上面2018年度下面的每個子目錄的文件重命名,命名規則是就是改為1.jpg到n.jpg
用程序實現的思路是下面這樣
使用的時候,將root_dir改成對應的目錄,然後執行這個sh文件就可以了
⑥ linux shell腳本判斷某個文件的大小,符合條件則備份並重命名
cat test.sh
#!/bin/sh
file=$1
file_size=` $file | awk '{print $2}'`
if [ $file_size -ge 10485760 ]
then
cp -p $file $file-bak
fi
chmod +x test.sh
./test.sh 1.txt
逐行解釋
1.
查看腳本文件test.sh
2.
定義腳本默認用sh執行
3.
將文件路徑賦予file變數。$1
表示位置變數即下面的1.txt
4.
計算文件大小並賦予file_size變數
5.
如果文件大小大於等於10m.
10485760為10m,-ge為大於等於。
6.
if語法關鍵字
7.
將文件重命名備份
8.
if語法關鍵字
9.
空行
10.
賦予腳本test.sh可執行許可權
11.
執行腳本,輸入位置變數1.txt.
⑦ linux shell 文件如何重命名-具體在裡面---很簡單
需要准備的材料分別是:電腦、linux連接工具。
1、首先連接上linux主機,進入命令行狀態。
⑧ Shell 文件重命名、替換字元
1.文件重命名
場景模擬:把文件夾BeiJing修改成HangZhou
2.替換字元
場景模擬:把readme.txt文件中,所有「name=」替換成「name=Jaychou」