Ubuntu 如何通过只保留12个字符来重命名多个文件
在我的Ubuntu18VM中有数千个文件具有相同数量的字符 我想通过只保留前12个字符来重命名所有这些文件 例如,我想在abcdefghijkl中重命名abcdefghijklmnop 我在*中尝试了此命令Ubuntu 如何通过只保留12个字符来重命名多个文件,ubuntu,Ubuntu,在我的Ubuntu18VM中有数千个文件具有相同数量的字符 我想通过只保留前12个字符来重命名所有这些文件 例如,我想在abcdefghijkl中重命名abcdefghijklmnop 我在*中尝试了此命令;执行mv“$i”“${i%| cut-c1-12}”;完成 但没有一个被重命名。终端说这些“是同一个文件” 我应该使用什么命令?试试这个: for i in *; do mv "$i" "$(echo $i | cut -c1-12)"; done
;执行mv“$i”“${i%| cut-c1-12}”;完成
但没有一个被重命名。终端说这些“是同一个文件”
我应该使用什么命令?试试这个:
for i in *; do mv "$i" "$(echo $i | cut -c1-12)"; done
我也不会依赖于for
,而是使用while
循环来读取整行,其中可能包含空格(而for
会将这些空格分开并断开):
如果有一个名为abcdefghijkl1的文件和另一个名为abcdefghijkl2的文件,会发生什么?可以按循环读取我的文件的方式排序吗?第二个将覆盖第一个。您在问题中没有提到需要进行检查,只询问了如何重命名文件:)您可以合并检查文件是否已存在该名称,如果存在,您可以添加适当的内容,然后再次检查。。
ls * |while read i; do mv "$i" "$(echo $i | cut -c1-12)"; done