下面的代码在我的旧服务器(Ubuntu)上运行
rename -n 's/(.*)\/.*\./$1\/$1./' */*但不是在我的新服务器(Debian)上。
我猜新服务器使用的是Perl rename。如何将以上内容转换为与Perl rename相同的工作方式?它所要做的就是重命名文件夹中的文件,以便名称以父文件夹的名称开头(删除原始文件名中最后一个点之前的任何名称)。因此,include/anything.h将成为include/include.h。
发布于 2019-12-19 05:19:41
作为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-renamehttps://stackoverflow.com/questions/59400066
复制相似问题