Unix/Mac OS X: 使用文件列表复制文件和文件夹保持目录结构

swa*_*jk1 2 unix macos bash copy

我有一个纯文本文件,其中包含数百个文件的名称,这些文件的路径相对于各个子目录中的主目录(如果需要,可以设为绝对路径)。主目录包含多个目录和数千个文件。我需要创建另一个目录来复制列表中的文件,同时在目标中维护它们的目录结构。

例子:

源文件夹:

/home/a/
    file1.jpg
    file2.jpg
    file3.jpg
/home/b/
    file4.jpg
    file5.jpg
    file6.jpg
Run Code Online (Sandbox Code Playgroud)

文件列表:(纯文本,在/home/)

./a/file2.jpg
./b/file5.jpg
Run Code Online (Sandbox Code Playgroud)

预期结果:

/home/dest/a/
    file2.jpg
/home/dest/b/
    file5.jpg
Run Code Online (Sandbox Code Playgroud)

从stackoverflow上的各种问题尝试了各种修改的cp,但每次都在结果中得到一个扁平的文件夹结构。

使用bash在OS X终端

请告诉如何做到这一点。

che*_*ner 6

您可以使用rsync

rsync --relative --files-from file-list.txt /home /home/dest
Run Code Online (Sandbox Code Playgroud)