我有一些名字像abc_old.php的文件夹中的文件现在我想将它们重命名为abc.php,我想从我的所有文件名中删除“_old”。我怎么能在一个文件夹中执行此操作去????
答案 0 :(得分:1)
壳牌设施将通过FTP限制。我会将文件复制到本地目录。在bash中(鉴于上面你声称有Linux可用):
for filename in *_old.php
do
mv $filename ${filename%_old.php}.php
done
%运算符匹配字符串的结尾并返回$ filename而没有匹配的段(%之后的位)。因此,上面将_old.php切断,然后替换.php。
我没有测试过上面的内容。首先在虚拟目录上尝试。
答案 1 :(得分:1)
很久以前,我在Programming Perl 4 O'Reilly的书后面找到了一小段代码,让你可以使用正则表达式重命名文件。从那时起我就一直使用它。能够使用Perl正则表达式,特别是tr和s,使文件重命名变得如此简单。因此,将其剪切,将其粘贴到路径中名为rename的文件中,使其成为可执行文件“chmod ugo + x rename”,并将其作为常规工具库的一部分。使用“perl”检查perl的位置并适当调整第一行。这假设你在一个可以访问Perl的Unix系统上。
#!/usr/bin/perl
# Usage: rename perlexpr [files]
($op = shift) || die "Usage: rename perlexpr [filenames]\n";
if (!@ARGV)
{
@ARGV = <STDIN>;
chop (@ARGV);
}
for (@ARGV)
{
$was = $_;
eval $op;
die $@ if $@;
rename ($was,$_) unless $was eq $_;
}
因此,对于您的示例,您可以执行
rename "s/_old//" *_old.php
糟糕。这个问题的标签是ftp。如果您通过ftp进行访问,那么这不会起作用,因为您不会有shell访问权。
答案 2 :(得分:0)
编写一个循环的程序,解析文件名,进行所需的更改并重命名文件。我不知道这样做的任何捷径。
您可能会发现将文件复制到本地计算机更容易,运行程序使名称更改,然后将新命名的文件上传回FTP服务器(显然删除旧文件)< / p>