使用FTP批量重命名多个文件

3

我有一组文件存放在我的FTP文件夹中,我只能以FTP模式访问。我想将这些扩展名为.txt的文件重命名为.done。

例如:

1.txt, 2.txt, 3.txt 

to

1.done, 2.done, 3.done

在这个FTP中,只有重命名命令是有效的。我期望有类似于

rename *.txt *.done 

使用单个命令重命名它们。


你能帮我写一个小脚本的样例吗? - user1071005
4个回答

3
简而言之:你不能这么做。 FTP非常基础,不支持批量重命名。你可以编写一个小脚本,或下载一些帮助软件,比如此处提供的软件。

你能帮我写个简单脚本的样例吗? - user1071005
1
你使用的是哪个操作系统?为什么不使用 SmartFTP 呢? - Yuri

1

大家好,

虽然这个问题很旧了,但我认为我的建议对其他人来说可能会有用。

我发现一个非常好的、简单的解决方案,它结合了 curlftpfs,这是一个基于 cURL 和 FUSE 的 FTP 文件系统,以及 rename,这是一个 Linux 和 Unix 多重命名工具。

我在 Linux Mint 17 上进行了测试(我认为它应该适用于其他基于 Debian 的发行版)。

  1. 安装curlftpfs

    sudo apt-get install curlftpfs
  2. 创建挂载文件夹

    sudo mkdir /mnt/ftp_remote_root
  3. 将远程ftp挂载到文件夹上

    sudo curlftpfs -o allow_other -o user="USERWITH@CHARACTERTOO:PASSWORDTOACCESSUSER" ftp://my_ftp_server.com /mnt/ftp_remote_root/
  4. 跳转到所需的ftp远程文件夹

    cd /mnt/ftp_remote_root/path/to/folder
  5. 根据需要重命名文件(-v显示新名称,-n显示感兴趣的文件,省略它们以重命名文件)

    sudo rename -v -n 's/match.regexp/replace.regexp/' *.file.to.change

由于它在网络上运行,可能需要几秒钟的时间。

我认为这真的很强大且易于使用。

如果您发现任何问题,请告诉我。

再见

Lorenzo


0

尝试像这样做:

以下示例在FTP服务器上移动/重命名文件

for f in $(lftp -u 'username,password' -e 'set ssl:verify-certificate no; ls /TEST/src/*.csv; quit' ftp.acme.com| awk '{print $9;}'); do lftp -u 'username,password' -e "set ssl:verify-certificate no; mv /TEST/src/$f /TEST/dst/$f; quit" ftp.acme.com; done

注意:使用 .netrc 存储用户名和密码。


0
请使用以下命令:
ren *.txt *.done

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接