重命名命令 Debian 服务器

rename command Debian server

以下内容适用于我的旧服务器 (Ubuntu)

rename -n 's/(.*)\/.*\./\/./' */*

但不在我的新服务器 (Debian) 上。

我猜新服务器正在使用 Perl rename。如何将上述转换为与 Perl rename 相同的工作方式?它要做的就是重命名文件夹中的文件,以便名称以父文件夹的名称开头(删除原始文件名中最后一个点之前的任何名称)。因此,include/anything.h 将变为 include/include.h

作为 util-linux 包一部分的重命名命令将不起作用。

您需要 运行 :

# apt install rename

如果你运行以下命令(GNU)

$ file "$(readlink -f "$(type -p rename)")"

并且您的结果包含 Perl script, ASCII text executable 而不包含 ELF,那么这似乎是正确的工具 =)

如果不是,将其设为 Debian 的默认值(通常已经是这种情况)和 Ubuntu 之类的派生词:

# update-alternatives --set rename /usr/bin/file-rename