问题:
我有一个"列表.txt"的文本文件中列出的文件列表,如下所示:
one file.jpg
two file.jpg
three file.jpg
现在我想将所有文件复制到另一个目录,我尝试:
cp $( cat list.txt ) other_directory
但是,正如你所见,文件中有空格,然后bash将名称分成两个,并且不复制文件。
我已经尝试用引号和双引号将名称引起来,并且我尝试使用反斜杠和space()以及它们的组合进行转义,但无济于事。
"one file.jpg"
'one file.jpg'
one file.jpg
我该怎么办?
答案1:
是否可以重命名原始文件?如果是这样,为什么不直接在脚本中重命名它们来替换空格?
答案2:
这把文件逐个拷贝(每个cp命令一个文件),每个源文件名都用双引号引起来:
awk '{ print "cp "" $0 "" other_directory }' list.txt | bash
相关文章