跳到主要内容

把当前目录(包含子目录)下所有后缀为“.sh”的文件后缀变更为“.shell” ?

参考答案:

要将当前目录(包括子目录)下所有后缀为 .sh 的文件后缀更改为 .shell,你可以使用 find 命令结合 rename 命令(在某些系统上可能是 prename)或者 for 循环和 mv 命令。

以下是两种方法的示例:

方法 1: 使用 findrename

如果你的系统上安装了 rename 命令,你可以使用以下命令:

find . -type f -name "*.sh" -exec rename 's/\.sh$/.shell/' {} +

这个命令会在当前目录及其子目录中查找所有后缀为 .sh 的文件,并使用 rename 命令将它们的后缀更改为 .shell

方法 2: 使用 findfor 循环

如果你的系统上没有 rename 命令,或者你喜欢使用更基本的命令,你可以使用 find 命令与 for 循环结合 mv 命令来实现相同的功能:

find . -type f -name "*.sh" | while read -r file; do
    mv "$file" "${file%.sh}.shell"
done

这个命令会找到所有 .sh 文件,并使用 mv 命令将它们重命名,将 .sh 后缀替换为 .shell

注意:在执行这些命令之前,请确保你有足够的权限来重命名这些文件,并且最好先在一个安全的环境中测试这些命令,以确保它们按照你的预期工作。如果你不小心,可能会导致数据丢失或不可预料的副作用。