Cp:目标不是一个目录。

27

我有一个 Bash 脚本,并且其中有这一行:

cp -R /usr/lib/gcc/x86_64-linux-gnu/$GCC_VERSION/* /app/.apt/usr/lib/gcc/x86_64-linux-gnu/$GCC_VERSION

完整脚本:https://github.com/virtualstaticvoid/heroku-buildpack-r/blob/cedar-14/bin/compile

不幸的是,它出现了错误:cp: target ‘/app/.apt/usr/lib/gcc/x86_64-linux-gnu/4.8’ is not a directory

有什么建议吗?很不幸,我对bash并不十分熟悉。

以前这个脚本是单独运行的,而且它是正常工作的。现在我必须在它之前添加一些apt-get install命令,它就开始失败了,所以我正在尝试修复它。


目标是一个目录吗? - 123
2个回答

17

没有名为4.8的目录...那就是你的问题 :)

在运行cp命令之前先运行这个命令:

mkdir -p /app/.apt/usr/lib/gcc/x86_64-linux-gnu/$GCC_VERSION

它创建给定路径中的所有目录!


1
必须注意,在此操作中mkdir命令应该和cp命令在同一行以确保操作成功。 - beyondfloatingpoint
1
有没有一种递归地处理多个文件夹的方法? - Black Chase

7

这应该可以运行,将cp命令的末尾添加/,以使其更清晰地知道它的目录:

mkdir -p /app/.apt
cp -R $BUILD_DIR/.apt/* /app/.apt/

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