删除目录中所有文件名的最后三个字符

删除目录中所有文件名的最后三个字符

我有一个包含大约 10 个文件的目录,我想从所有这些文件的名称中删除最后三个字符。有人知道可以执行此操作的终端命令吗?

另外,我该如何将所有这些文件的名称中的字符更改为小写?

答案1

您可以使用rename。使用以下命令安装:

sudo apt install rename

从当前目录中的所有文件名中删除最后三个字符:

rename 's/...$//' *

将当前目录中所有文件的名称中的字符更改为小写:

rename 'y/A-Z/a-z/' *

更多信息请参见man rename

答案2

删除最后 3 个字符:

for i in *
do
j=`echo $i | sed -e 's/...$//'`
mv $i $j
done

将名称更改为小写:

for i in *
do
j=`echo $i | tr A-Z a-z`
mv $i $j
done

答案3

bash可以使用Shell 参数扩展

单线

for filename in *; do newname=${filename:0:-3}; newname=${newname,,}; mv "$filename" "$newname"; done

多行带注释

#!/bin/bash

# Loop through all files in the directory
for filename in *; do

    # Remove the last three characters from the name
    newname=${filename:0:-3}

    # Convert to lowercase
    newname=${newname,,}

    # Rename the file by moving it
    mv "$filename" "$newname"

done

相关内容