看,我有一個完整的目錄,裏面有各種隨機名稱。通過bash更改目錄中每個文件的名稱
我想要一個腳本,將所有的圖像名稱更改爲 IMG_(從這裏可以說100到90000的隨機數)。
如果有這樣的可能性我想用bash寫,因爲我會在debian機器上處理這些圖像。
但是您提出的其他所有解決方案都將得到讚賞。
謝謝!
看,我有一個完整的目錄,裏面有各種隨機名稱。通過bash更改目錄中每個文件的名稱
我想要一個腳本,將所有的圖像名稱更改爲 IMG_(從這裏可以說100到90000的隨機數)。
如果有這樣的可能性我想用bash寫,因爲我會在debian機器上處理這些圖像。
但是您提出的其他所有解決方案都將得到讚賞。
謝謝!
#! /bin/bash
for img in `ls directory`;
do
mv $img /samedirectory/newname
done;
NEWNAME在這裏,你的情況是IMG_ $ NUM 嘗試INC $ NUM爲每個圖像...
有沒有辦法在第一個名爲$ num的地方創建一個變量,其中包含從100到999999的隨機數? – 420
#!/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))
爲什麼數量必須是隨機的?如果您使用隨機編號而不是順序編號,則需要能夠生成唯一的「隨機」數字,更類似於隨機播放算法。 – paddy
在我的情況下,這些數字需要是隨機的,我想如果我有,讓我說100個圖像在我的目錄中,我會選擇範圍從100到90000的數字,重複的機會是相當的小不是嗎?我只需要知道如何在我的腳本開始時在bash中定義這樣的變量,這會給我隨機數。 – 420
絕對不能保證你不會碰撞,不管你認爲機會多小。當你這樣做時,你需要有一個解決方案。如果你對此不以爲意,最終可能會覆蓋另一個文件並丟失數據。相反,您可能會考慮使用Python。 – paddy