在/ Desktop / a /上,有一组文件:
DSCN1840.AVI00001.png
DSCN1840.AVI00002.png
DSCN1840.AVI00003.png
DSCN1841.AVI00001.png
我想要具有以下结构:
Desktop/a/DSCN1840/
DSCN1840.AVI00001.png
DSCN1840.AVI00002.png
DSCN1840.AVI00003.png
Desktop/a/DSCN1841/
DSCN1841.AVI00001.png
作为一个步骤,您可以循环浏览所有文件并收集所需的子目录名称。如果该子目录尚不存在,则创建它;然后将该文件移到该子目录中:
for f in *.png
do
subdir=${f%%.*}
[ ! -d "$subdir" ] && mkdir -- "$subdir"
mv -- "$f" "$subdir"
done
其中的关键部分是in中的参数扩展${f%%.*}
,它表示删除%%
句点中最长的匹配部分(),后跟所有内容,从而有效地剥离掉.AVI00003.png
文件名的各个部分,仅保留前导目录指示符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句