【问题标题】:Terminal Linux - referencing executable file - No such file or directory终端 Linux - 引用可执行文件 - 没有这样的文件或目录
【发布时间】:2018-06-12 16:40:17
【问题描述】:
我在终端上不是很好,我不知道为什么它会返回这个。很抱歉问这个问题可能真的很明显,但是我引用的可执行文件肯定在那个文件路径中,经过研究我似乎找不到答案:
/home/user/protoc-3.5.1-linux-x86_64/bin/protoc object_detection/protos /*.proto --python_out=.
object_detection/protos/*.proto: No such file or directory
(我无法 cd 进入它,因为我需要在特定目录中执行此操作)
谢谢
【问题讨论】:
标签:
linux
file
command-line
terminal
directory
【解决方案1】:
似乎 bash 正在寻找一个名为“[star]”的特定文件,而不是将其用作通配符。
我认为您可能需要使用管道来获得所需的结果。
【解决方案2】:
从您的命令行看来,protoc 是可执行文件,位于/home/user/protoc-3.5.1-linux-x86_64/bin/protoc。并且你给它两个 由空格分隔的参数:object_detection/protos 和/*.proto。如果文件路径中有空格,则需要对其进行转义或双引号:
protoc object_detection/protos\ /*.proto 或
protoc "object_detection/protos /*.proto"
奇怪的是错误信息的指示不同:
object_detection/protos/*.proto: No such file or directory
或者可能protoc 可执行文件需要文件参数的绝对(完整)路径。如果您当前工作目录中的命令 ls object_detection/protos/*.proto 为您显示结果,那么您可以尝试像这样运行您的命令以使用绝对文件路径:
/home/user/protoc-3.5.1-linux-x86_64/bin/protoc $PWD/object_detection/protos/*.proto
$PWD 是一个环境变量,包含您的工作目录路径。