Ftp 重命名文件夹中的文件

Ftp 重命名文件夹中的文件,ftp,Ftp,我在一个文件夹中有一些名为abc_old.php的文件,现在我想将它们重命名为abc.php,也就是说,我想从我所有的文件名中删除“_old”。我如何一次完成这项工作???编写一个程序,循环、解析文件名、进行所需的更改并重命名文件。我不知道有什么捷径可以做到这一点 您可能会发现将文件复制到本地计算机、运行程序在那里更改名称,然后将新命名的文件上载回FTP服务器(显然是删除旧文件)更容易。Shell功能将通过FTP受到限制。我会将文件复制到本地目录。在bash中(鉴于您在上面声明Linux可用):

我在一个文件夹中有一些名为abc_old.php的文件,现在我想将它们重命名为abc.php,也就是说,我想从我所有的文件名中删除“_old”。我如何一次完成这项工作???

编写一个程序,循环、解析文件名、进行所需的更改并重命名文件。我不知道有什么捷径可以做到这一点


您可能会发现将文件复制到本地计算机、运行程序在那里更改名称,然后将新命名的文件上载回FTP服务器(显然是删除旧文件)更容易。

Shell功能将通过FTP受到限制。我会将文件复制到本地目录。在bash中(鉴于您在上面声明Linux可用):

%运算符匹配字符串的结尾,并返回$filename,但不包含匹配的段(在%后面的位)。因此,上面将切掉_old.php,然后替换为a.php


我没有测试过上面的内容。首先在一个虚拟目录上试试。

很久以前,我在编程Perl 4 O'Reilly的书的后面找到了一小段代码,可以使用正则表达式重命名文件。从那以后我就一直用它。能够使用Perl正则表达式,特别是tr和s,使得文件重命名变得非常容易。因此,删掉它,将其粘贴到路径上名为rename的文件中,使其可执行“chmod ugo+x rename”,并将其作为常规工具库的一部分。用“whichperl”检查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 $_;
}

哎呀。这个问题的标签是ftp。如果您通过ftp访问,那么这将不起作用,因为您将无法访问shell。

是否要编写自定义ftp应用程序?或者你正在使用现有的ftp客户端?我有linux和ftp,它们都告诉我在哪里更简单:-)我在使用现有的ftp客户端,所以文件在远程ftp服务器上?您想通过本地ftp客户端进行这些更改?您在终端中运行的是什么shell?您可能会发现它是Bashtanxx一吨人…………您的代码只需一个简单的步骤就完成了:-)
#!/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