我希望复制图像(grey.png
)并使用重命名副本这一长串名单
有什么办法吗?(运行 13.10)
答案1
我假定您在 的文件中有一个姓名列表/path/to/target_names
。
要进行复制,请打开终端并cd
进入包含此文件的目录。然后运行
for i in $( </path/to/target_names tr -d ',' ); do cp grey.png ${i}; done
您不必进行复制,因为复制会使所需的大小乘以新文件的数量,而是可以使用符号链接,其中每个新文件都引用原始文件,而无需复制它。
for i in $( </path/to/target_names tr -d ',' ); do ln -s grey.png ${i}; done
请注意,如果您使用符号链接,则以后将无法更改原始路径和目标路径的相对路径。即它们必须保留在同一目录中。(如果愿意,您可以使用原始命令为另一个目录创建符号链接。)
答案2
假设您有一个names.txt
包含所有这些图像名称的文件。
创建新文件夹以用于复制:
mkdir copies
现在做个小测试。这将输出所有文件名
for name in `sed -r 's/,/\n/g;s/ *//g' names.txt`; do echo $name; done
如果一切顺利,请执行下一步。
最后复制到copies
文件夹。我假设您在文件夹所在的文件夹中执行此names.txt
操作copies
。
for name in `sed -r 's/,/\n/g;s/ *//g' names.txt`; do cp grey.png copies/$name; done