如何批量重命名文件但不重命名目录?

如何批量重命名文件但不重命名目录?

我有很多文件需要附加扩展名,但它们位于具有许多子目录的目录中。目前这些文件根本没有扩展名。我该如何只重命名文件而不重命名任何目录或子目录?

答案1

迭代所有内容并测试它是否是常规文件。

#bash
for file in ./*; do
    [[ -f $file ]] && mv "$file" "$file.ext"
done

如果您需要避免在已有扩展名的文件上添加扩展名:

for file in ./*; do
    if [[ -f $file && $file != *.ext ]]; then
        mv "$file" "$file.ext"
    fi
done

相关内容