当我输入此命令时:
./vw -d click.train.vw -f click.model.vw --loss_function logistic
在cygwin上我收到了这个错误:
-bash:./ vw:没有这样的文件或目录
我实际上想要实施“预测网络机器学习点击率”网站链接以供参考: http://mlwave.com/predicting-click-through-rates-with-online-machine-learning/
任何帮助都将不胜感激。
答案 0 :(得分:1)
根据常见错误回答。
假设您在命令行中编写ls
并获取以下内容:
$ ls
anyfile command
然后,您使用./command
调用命令并获取以下内容:
$ ./command
bash: ./command: No such file or directory
在这里你可以认为ls
是错误的,但实际情况是你不能轻易识别文件名是否有例如前导或尾随空格:
$ ls -Q # -Q, --quote-name -> enclose entry names in double quotes
"anyfile" "command "
如您所见,此处我的command
有一个尾随空格:
$ ./"command " # it works
一个常见的错误是通过名称调用命令而没有扩展名(如果有的话)
让我们命名命令:command.sh
:
$ ./command # wrong
$ ./command.sh # OK
如果使用前缀./
调用命令,则需要位于当前目录($PWD
)中。如果不是,你会得到:
$ ./command # relative path -> same as "$PWD/command"
bash: ./command: No such file or directory
在这种情况下,您可以尝试以下方法:
$ /home/user/command # absolute path (example). It starts with a slash (/).
如果只提供没有斜杠的命令名,bash
会在$PATH
变量的每个目录中搜索名为command
的可执行文件。
$ command
您可以使用which
命令进行搜索:
$ which command
/usr/bin/command
如果搜索失败,您会得到类似的信息:
$ which unexistent_command
which: no unexistent_command in (/usr/local/sbin:/usr/local/bin:/usr/bin)
现在,假设您在命令行中编写ls -Q
并获取以下内容:
$ ls -Q
"anyfile" "command"
这一次,您可以100%安全command
存在,但是当您尝试执行它时:
$ ./command
bash: ./command: No such file or directory
原因? bash
抱怨command
并不存在,但不存在的是Symbolic link指向的文件command
。 e.g:
$ ls -l
total 0
-rw-r--r-- 1 user users 0 Jan 14 02:12 anyfile
lrwxrwxrwx 1 user users 27 Jan 14 02:12 command -> /usr/bin/unexistent_command
$ ls /usr/bin/unexistent_command
ls: cannot access /usr/bin/unexistent_command: No such file or directory
请注意,以下内容肯定会引发您正在获得的错误...
要执行文件,必须激活 x 位。使用ls -l
,您可以检查文件权限。
$ ls -l command
-rw-r--r-- 1 user users 0 Jan 3 19:52 command
在这种情况下(它没有激活 x 位),您可以通过chmod
授予权限:
$ chmod +x command
$ ls -l command
-rwxr-xr-x 1 user users 0 Jan 3 19:52 command