如何使用Bash中的install命令将目录复制到另一个目录中?

26
假设有嵌套的目录 foo/bar 和一个空目录 dest,我想要执行类似于 install foo dest 的命令,使得 dest 包含目录 foo/bar
我尝试了以下命令: install foo dest => 安装:省略目录 "foo" install -d foo dest => 什么也没发生

如果foo中包含的不仅仅是bar呢? - Danstahr
2
foo 可以并且也会包含文件。它可以是一个任意深度的未知目录树。 - mtsz
可能是重复的 https://dev59.com/SnRC5IYBdhLWcg3wFM_W - Will
2
据我所知,您无法使用“install”复制整个目录树。您需要使用“cp”来完成此操作。您需要使用“install”指定单个文件。通常用于设置它们的权限。 - ben_re
2个回答

8

您应该使用cp -r命令:

cp -r foo dest

我收到了 install: target directory not allowed when installing a directory 的错误信息。 - mtsz
为什么不用 cp -a 呢? - BЈовић
3
为什么installcp更受青睐:https://unix.stackexchange.com/a/239279/223253 - Alberto Salvia Novella
1
这并没有回答问题。楼主要求使用“install”来完成。cp命令不会设置权限。 - undefined

8
install -D "${origin}"/* -t "${target}"

4
这应该是被采纳的答案。同时请增加一条评论说明这只是一级复制。 - Slim Aloui
1
不,这行不通。-D 只复制空目录结构,不能完成此处要求的操作。 - Tamás Szelei
我收到了一个“install: 省略目录 source/foo/” 的信息,且文件夹“dest/foo” 没有被创建。 - schande
1
@schande 看起来他们刚刚更改了行为。我不知道如何再用 install 来实现这个了。 - Alberto Salvia Novella

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接