[更新-1]:可能であれば、最も簡単なコマンドを学習する動機となる短所を教えてください。
つまり、ディレクトリ内に 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の名前を変更する(ランダムではない)と取得する
これは名前ファイル.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
。ドット(.
)で始まる名前は「非表示」であり、プレーンls
ではスキップされるため、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