【发布时间】:2010-12-15 06:50:37
【问题描述】:
我有一个名为 list.txt 的文件名列表。
我想将此列表中的文件复制到一个新文件夹。
我该怎么做呢?
谢谢!
【问题讨论】:
-
这是一个shell脚本问题——它是关于编程的。
标签: macos unix command-line terminal
我有一个名为 list.txt 的文件名列表。
我想将此列表中的文件复制到一个新文件夹。
我该怎么做呢?
谢谢!
【问题讨论】:
标签: macos unix command-line terminal
你可以这样做:
cp `cat list.txt` new-folder/
请注意,使用此方法时应避免在文件名中包含空格(如果是这种情况,则需要另一种解决方案。
反引号执行cat list.txt 命令并使用该命令的输出 作为cp 命令行的一部分。 cat 输出中的换行符在命令行替换之前折叠为空格。
【讨论】:
如果您想保留目录结构,请使用以下其中一种(假设 GNU tar):
cpio -pvdm /destination <list.txt
tar -cf - -F list.txt | tar -C /destination -x
在这两种情况下,最终结果是 /destination 是 list.txt 中文件名的前缀。
【讨论】:
使用循环
while read -r line
do
cp "$line" /destination
done <"file"
【讨论】:
循环:
dest="<destination folder>" #keep the quotes
for i in `cat < list.txt` #loop each line of list.txt
do
cp $i $dest #in each loop copy $i, e/a line of list.txt to $dest
echo "Done."
done
经过测试。确保“./list.txt”存在,否则手动填写绝对路径。 :)
【讨论】: