如何递归' scp '文件指定的命令输出?



我只想scp在git存储库中被跟踪的文件。

例如,git ls-files命令有以下输出:

$ git ls-files
someFile
src/file1.txt
src/file2.txt
anotherFile

scp接受这样的输入:scp someFile src/file1.txt src/file2.txt anotherFile <destination>,我可以通过使用scp $(git ls-files) <destination>产生。这样做的问题是,它只是将所有文件转储到<destination>中,而不维护文件夹结构。我想为此使用scp -r,但我不知道如何过滤文件,以便仅复制使用git ls-files命令显示的文件。也许有一些方法可以使用xargs来实现这个…

使用rsync

git ls-files | rsync -a --files-from=- . <destination>

如果没有,可以创建一个tar--files-from,在另一边使用sshtar

如果没有,创建一个临时目录,在保留目录结构的情况下将所有文件复制到本地,并使用scp -r复制该临时目录。

最新更新