查找并复制txt文件中路径名中包含的文件

时间:2011-11-14 15:01:54

标签: bash shell unix scripting

我们有一个paths.txt文件,其中包含文件夹中特定文件的路径名。     asd/fold2/some.txt
asd/fold2/some/tr6/ok.txt
我们需要将paths.txt中列出的所有文件复制到新文件夹中。 我的问题不是如何复制或移动这些文件,而是我如何找到搜索并最终移动或复制它们等等。

3 个答案:

答案 0 :(得分:3)

您可以使用-a的{​​{1}}和-I选项执行此操作:

xargs

说明:

  • xargs -a files.txt -I __FILENAME__ cp __FILENAME__ dest :从文件而不是标准输入中读取项目。
  • -a:使用从标准输入读取的名称替换initial-arguments中出现的replace-str(在本例中为-I)。

答案 1 :(得分:2)

你想要那个:

#!/bin/sh 
# usage : script.sh paths.txt destination
[ -f $1 ] || exit
[ -d $2 ] || exit

while read file
do
   cp $file $2
   echo "cp $file $2"
done < $1

答案 2 :(得分:2)

不检查重复的名称,它可以像

一样简单
cp $(<paths.txt) new_folder/