以下适用于我的旧服务器(Ubuntu)
rename -n 's/(.*)\/.*\./$1\/$1./' */*
但不在我的新服务器(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
关于regex - 重命名命令 Debian 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59400066/