我有相当多的文件有很长的文件名,符号,空格等。我想随机和盲目地一次性重命名所有文件,同时从1-9a-Z
给它们一个随机文件名。我不想操纵每个文件名,因为它会因符号,空格,长度等而丢失错误。
非常感谢任何形式的帮助。提前谢谢。
答案 0 :(得分:4)
也许是一个简单的bash脚本,就像Oli建议的那样:
#!/bin/bash
counter=1
for i in *; do
mv "$i" "$counter";
((counter++))
done
HTH
答案 1 :(得分:2)
带有临时文件名的Oneliner(更改您自己的目录):
for f in *; do mv "$f" `mktemp -p /home/user/temp`; done
答案 2 :(得分:1)
mv filename tmp/$i
,其中$i
是递增数字。mv tmp/* .
。答案 3 :(得分:1)
您可以将inodenumber用作文件名。保证在文件系统中是唯一的。
#!/bin/sh
# inodenumber+name
find . -name \*tmp -type f -ls | awk '{print $1," ",$11}' | (
while read i p; do
# UPDATE: extract the basename and suffix
b=`basename $p`
s="${b##*\.}"
echo "b=$b"
echo "s=$s"
# remove the echo after testing ...
echo mv -i $p $i.$s
done
)
#eof
注意:如果文件名中有空格或制表符,则无效。