小编Zel*_*luX的帖子

如果不存在,如何cp文件并创建目录?

我想将 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)

linux command-line-interface copy

16
推荐指数
2
解决办法
6万
查看次数

访问控制:Windows 与 Linux

我正在阅读MIT 6.893 讲座,其中说Unix 中的保护是一团糟,没有基本原则,它还指出 Windows有更好的替代方案,可以通过 IPC 将特权从一个进程传递到另一个进程

在我看来,虽然 Windows 用户似乎更容易受到病毒和漏洞的影响,但我认为这主要是由于大多数 Windows 用户是经验不足的计算机用户,而 Windows 平台因为拥有更多的用户而吸引了更多的攻击者。

我想知道是否有更详细的文章或论文比较 Windows 和 Linux 中的安全机制和设计?

security linux windows

12
推荐指数
1
解决办法
2438
查看次数

标签 统计

linux ×2

command-line-interface ×1

copy ×1

security ×1

windows ×1