如何使用 ls 命令输出作为管道来重命名文件夹中的文件?

如何使用 ls 命令输出作为管道来重命名文件夹中的文件?

我正在使用 GNU/Linux 和 BASH shell,

我想在服务器上做的是

我需要能够下载以 B* 和 D* 开头的文件,然后将它们重命名为 ~B* 和 ~D*(文件名相同,只是前面有 ~)

我写了下面的内容,对于下载部分来说效果很好,理想情况下我希望它也使用 ls 命令输出,但不知道如何做到这一点。

cd inbox
get D*
get B*
ls B*|rename $0 ~B.* 
bye

任何想法 ?

理想情况下,我想要做的是 ls 命令将文件列表逐个发送给 get 命令,然后一旦 get 命令完成,我希望执行 rename 命令重命名服务器文件

答案1

不要在你的 ftp 会话中执行此操作。出来并执行它:

ls [BD]* | sed 's/.*/mv & ~&/' | sh

相关内容