git状态并传递给rsync进行内容比较
*我是尼克斯·努布 我需要在centos/rhel上执行以下操作: 运行git status,获取那里列出的文件的输出,并将它们传递给rsync-avcn soure dir/target dir/git状态并传递给rsync进行内容比较,git,bash,rsync,Git,Bash,Rsync,*我是尼克斯·努布 我需要在centos/rhel上执行以下操作: 运行git status,获取那里列出的文件的输出,并将它们传递给rsync-avcn soure dir/target dir/ 我知道如何做到这两个方面,但不知道如何格式化或将从git返回的文件传递给rsync。非常感谢您的帮助。git status本身并不仅仅列出文件,它还包含一条很长的人类可读的状态消息。也许你正在寻找类似的东西 git status --porcelain | sed -n 's/^?? //p' 只
我知道如何做到这两个方面,但不知道如何格式化或将从git返回的文件传递给rsync。非常感谢您的帮助。
git status
本身并不仅仅列出文件,它还包含一条很长的人类可读的状态消息。也许你正在寻找类似的东西
git status --porcelain | sed -n 's/^?? //p'
只获取未提交文件的列表
但一般来说,如果你能找到一种方法来生成你想要的文件列表,你可以这样做
rsync -avcn soure-dir/target-dir/ $(command-to-list-files)
或
当文件名中包含空格或其他特殊字符时(尽管您需要使用
xargs
选项才能正确使用此功能),当单个命令行中容纳的文件数过多时(您得到的是“命令行太长”),后者更为健壮。。这些信息会让我走上正确的道路。谢谢@tek0011您是否创建了$(列出文件的命令)
?我有兴趣创建一个类似的解决方案,该代码将节省我一些时间。谢谢
command-to-list-files |
xargs rsync -avcn soure-dir/target-dir/