elb*_*rna 1 scripting rename random mv
假设我有一个文件夹,里面有很多文件名,我想把它重命名为
File-1
File-2
File-3
..
Run Code Online (Sandbox Code Playgroud)
我试过这个(回声是为了尝试)
for name in *; do echo mv $name File-`echo $(( RANDOM % (10 - 5 + 1 ) + 1 ))`;done
Run Code Online (Sandbox Code Playgroud)
但给我很多重复
mv bio1 file-3
mv memory23 file-1
mv mernad file-3
mv nio2 file-4
mv nun3 file-4
Run Code Online (Sandbox Code Playgroud)
您可能会使用shuf
(来自 GNU coreutils 包),它生成排列而不是单个随机样本 - 类似
for f in *; do read i; echo mv -- "$f" "file-$i"; done < <(shuf -i 1-10)
Run Code Online (Sandbox Code Playgroud)
或者(也许更好)重新排列文件名- 然后简单地按顺序重命名它们
i=1; shuf -z -e -- * | while IFS= read -rd '' f; do echo mv -- "$f" "File-$((i++))"; done
Run Code Online (Sandbox Code Playgroud)