重命名文件夹中的文件

时间:2009-06-11 11:49:58

标签: ftp

我有一些名字像abc_old.php的文件夹中的文件现在我想将它们重命名为abc.php,我想从我的所有文件名中删除“_old”。我怎么能在一个文件夹中执行此操作去????

3 个答案:

答案 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>