[更新1]:如果可能的話,請給我一些缺點,以激勵我學習最簡單的命令。
所以,我的目錄中有一個檔案:
ls | grep *.mp4
視頻.mp4
我使用此命令隨機重命名並移動另一個目錄中的檔案:
for a in *.mp4; do mv -n "$a" "${a/*/$RANDOM.mp4}"; done; mv *.mp4 /home/misdeed/Documents
好的,我隨機得到 video.mp4 的名稱
cd Documents; ls | grep *.mp4
19889.mp4
問題:
使用方法為:
a="This is name file"
echo $a
這是名稱文件
用於重命名 *.mp4 (不是隨機的)和 get
這是名稱檔案.mp4
我需要類似的東西:
a="This is name file"
COMMAND FOR RENAME BUT WITHOUT $RANDOM. I WANT USE $a in renamed file
答案1
假設原來的名字是預先知道的,它是video.mp4
。您將其重命名為
mv video.mp4 "$a".mp4
筆記:
- 如果變數為空(或未設定),則最終名稱將為
.mp4
。以點 (.
) 開頭的名稱是「隱藏」的,plainls
會跳過它們,您需要ls -a
查看它們。 - 如果已經存在具有目標名稱的文件,則該文件將會遺失,並且先前的
video.mp4
文件將採用其名稱。為防止發生意外,請考慮mv -i
;如果目標路徑存在,將會提示確認。
答案2
我假設您想要列印新的隨機檔案名稱?在這種情況下,最簡單的方法是重複使用隨機變數的值。
for file in *.mp4; do
RANDOM_NAME="${file/*/$RANDOM.mp4}";
mv -n "$file" /home/misdeed/Documents/"$RANDOM_NAME";
echo "This is name $RANDOM_NAME.mp4";
done