【问题标题】:move (or copy) files from a list in Linux从 Linux 列表中移动(或复制)文件
【发布时间】:2014-08-11 15:24:27
【问题描述】:

所以,我有一个文本文件中的文件列表。我相信大约有 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

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

【问题讨论】:

  • 欢迎来到 StackOverflow。 SO 是针对编程问题的,所以你的问题是题外话。你应该把这个问题发到Super User
  • 编写一个 shell 脚本或使用一些舒适的脚本语言,如 python。

标签: linux shell move rsync


【解决方案1】:
cat list | xargs tar cf - | (cd dest; tar xvfp -)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 2013-04-23
    相关资源
    最近更新 更多