我想将 svn 存储库中修改过的文件复制到另一个目录,同时保留它们的目录结构。
阅读 awk 和 xargs 联机帮助页后,我找到了一种方法来更改文件名,如下所示:
$ svn status -q | awk '{ print $2 }' | xargs -d \\n -I '{}' cp '{}' /tmp/xen/
Run Code Online (Sandbox Code Playgroud)
但问题是,以这种方式不保留目录结构,我想复制这样的文件:
./common/superp.c -> /tmp/xen/common/superp.c
./common/m2mgr.c -> /tmp/xen/common/m2mgr.c
./common/page_alloc.c -> /tmp/xen/common/page_alloc.c
./arch/x86/mm.c -> /tmp/xen/arch/x86/mm.c
./arch/x86/mm/shadow/private.h -> /tmp/xen/arch/x86/mm/shadow/private.h
Run Code Online (Sandbox Code Playgroud)
我试图将 cp 命令更改为cp '{}' /tmp/xen/'{}'但它说没有这样的文件或目录。如果需要,有没有办法制作cp复制文件并创建目录?并请指出是否可以简化此命令链。:-)
感谢你的回复。由于目录有点大,我不想使用cp -R或rsync复制整个目录。CK 使用 tar 管道的建议非常有用。
svn status -q | awk '{ print $2 }' | xargs tar cf - | (cd /tmp/xen/; tar xvf -)
Run Code Online (Sandbox Code Playgroud) 我正在阅读MIT 6.893 讲座,其中说Unix 中的保护是一团糟,没有基本原则,它还指出 Windows有更好的替代方案,可以通过 IPC 将特权从一个进程传递到另一个进程。
在我看来,虽然 Windows 用户似乎更容易受到病毒和漏洞的影响,但我认为这主要是由于大多数 Windows 用户是经验不足的计算机用户,而 Windows 平台因为拥有更多的用户而吸引了更多的攻击者。
我想知道是否有更详细的文章或论文比较 Windows 和 Linux 中的安全机制和设计?