【发布时间】:2020-05-20 15:08:19
【问题描述】:
我有两个文件名和目录名。我想将 mv 命令从文件名文件的每一行映射到目录名文件中的每一行。文件很小。
如果有帮助,我可以按顺序命名文件(例如 f1、f2、f3...f1000)。有没有办法循环读取一个文件和一个目录?
可以有 3 个用例:一个文件到多个目录,多个文件到一个目录,多个文件到多个目录(在我的例子中,1 个文件/行 = 1 个目录/行)。我的用例与最后一个有关。我已经看到 xargs 在某些用例中使用,但我不确定如何针对我的用例进行修改。
以下问题无济于事:Moving large number of files
【问题讨论】:
-
一个想法:使用
mapfile将每个文件加载到一个数组中。从 0 迭代到 N 并将其用作两个数组的索引,以获得一对与mv一起使用的名称。 -
类似
paste <(sed 's/^/mv /' files) dirs | bash?如果必须引用任何文件或目录名称,则需要进行一些调整。如果您显示一些示例输入,答案可能会更具体。
标签: bash shell terminal scripting