use*_*796 0 linux shell bash rsync
我有以下文本文件
...
/a/b/c/f1
/a/b/c/f2
...
/a/b/c/d1
...
Run Code Online (Sandbox Code Playgroud)
其中f1和f2是文件,而d1是目录。我想将确切的层次结构复制到我的目标文件夹 ( /z) 中。
使用 bash,对于lr从文本文件读取的每一行,我的脚本都会运行(为了简单起见,我省略了这些选项)
rsync $lr/ /z/$lr
该文件夹被正确复制,因为我获得了/z/a/b/c/d1. 不幸的是,对于文件结果
/z/a/b/c/f1/f1
/z/a/b/c/f2/f2
Run Code Online (Sandbox Code Playgroud)
rsync如何对文件和目录使用上述相同的调用来解决这个问题?
不要手动 rsync 文件。使用该--files-from=选项来包含您的文本文件。
目录规则:
//或选项--recursive/-r或者如果使用option-a并且想要递归,则需要-r另外添加。确保文件中的路径相对于源目录(带或不带前导/)。
您输入的一个最小示例是:
rsync --files-from=textfile / /z
Run Code Online (Sandbox Code Playgroud)
如果您需要事先修改/过滤文本文件,您可以将其从 stdin 传递到 rsync,例如
your_command textfile | rsync --files-from=- / /z
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2599 次 |
| 最近记录: |