从Linux中的列表中移动(或复制)文件

时间:2014-08-11 15:24:28

标签: linux shell move rsync

所以,我在文本文件中有一个文件列表。我相信这是大约100,000个文件。

所述列表中的文件分布在许多目录中,具有不同的大小,文件名,扩展名,年龄等。

我正在尝试找到一种将这些文件移动到另一个驱动器的方法。

复杂因素:某些文件具有相同的名称,但文件不同。它们不能只是被移动到一个文件夹中,而是覆盖或忽略多个策略。

最好,我希望他们保留他们的目录结构,但只在目标目录中包含我想要的文件。 (目标驱动器不够大,无法简单地复制所有内容)。

以下是文件中某些行的示例:

    media/dave/xdd/cruzer/F#(NTFS 1)/Raw Files/Portable Network Graphic file/3601-3900/FILE3776.PNG/Windows/winsxs/amd64_microsoft-windows-o..disc-style-memories_31bf3856ad364e35_6.1.7600.16385_none_51190840a935f980/Title_mainImage-mask.png

media / dave / xdd / d1 / other / hd1 / Program Files / DVD Maker / Shared / DvdStyles / Memories / Title_content-background.png

我试过用         rsync -a --files-from = / sourcefile.txt // media / destinationhdd

但是,这只是尝试将我的根目录复制到目标。请帮忙,我该如何复制我想要的诅咒文件?

1 个答案:

答案 0 :(得分:0)

cat list | xargs tar cf - | (cd dest; tar xvfp -)

其中 list 是包含所有文件路径的文件。 dest 是目标目录