2016-11-24 96 views
0

看,我有一個完整的目錄,裏面有各種隨機名稱。通過bash更改目錄中每個文件的名稱

我想要一個腳本,將所有的圖像名稱更改爲 IMG_(從這裏可以說100到90000的隨機數)。

如果有這樣的可能性我想用bash寫,因爲我會在debian機器上處理這些圖像。

但是您提出的其他所有解決方案都將得到讚賞。

謝謝!

+0

爲什麼數量必須是隨機的?如果您使用隨機編號而不是順序編號,則需要能夠生成唯一的「隨機」數字,更類似於隨機播放算法。 – paddy

+0

在我的情況下,這些數字需要是隨機的,我想如果我有,讓我說100個圖像在我的目錄中,我會選擇範圍從100到90000的數字,重複的機會是相當的小不是嗎?我只需要知道如何在我的腳本開始時在bash中定義這樣的變量,這會給我隨機數。 – 420

+0

絕對不能保證你不會碰撞,不管你認爲機會多小。當你這樣做時,你需要有一個解決方案。如果你對此不以爲意,最終可能會覆蓋另一個文件並丟失數據。相反,您可能會考慮使用Python。 – paddy

回答

1
#! /bin/bash 

for img in `ls directory`; 
do 
    mv $img /samedirectory/newname 
done; 

NEWNAME在這裏,你的情況是IMG_ $ NUM 嘗試INC $ NUM爲每個圖像...

+0

有沒有辦法在第一個名爲$ num的地方創建一個變量,其中包含從100到999999的隨機數? – 420

1
#!/bin/bash 

for img in dir/* ; do 
    mv "$img" "/path/to/target/dir/newname_$RANDOM 
done 

這樣,你可以得到0和32767但作爲之間的隨機數在評論中已經提到過,它絕對不能保證它不會碰撞。依賴於bash,所以它可能不會在其他shell中工作。

如果要指定一個更大的範圍內我的建議是

randNumber=$((($RANDOM$RANDOM % $upperBorder) + $lowerBorder)) 
相關問題