在位于Windows计算机上的共享安装的硬盘驱动器上找不到Perl脚本

时间:2016-07-12 12:36:48

标签: linux perl path mount

我正在使用Linux Mint 17.1 Rebecca 64位。

我有一个名为test.pl的简单Perl脚本:

margin: auto

权限为#!/usr/bin/perl print "Hello\n" ;

我的PATH变量是:-rwxr-xr-x

当这个脚本在我的用户bin目录/ home / myLogin / bin中时,我可以通过简单的方式在bin目录之外启动它:

/mnt/USERS/user1/:/home/myLogin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

命令:

test.pl

返回

which test.pl

这似乎没问题。

在我的Linux上,我安装了位于本地网络某处的共享Windows硬盘。 如果我将此脚本移动到/ mnt / USERS / user1 /上的Windows挂载硬盘驱动器,即使/ mnt / USERS / user1 /位于$ PATH变量中,我也无法再运行它。 系统回答“未找到命令”。 如果我使用cd命令转到此目录,我无法通过简单的启动脚本:

/home/myLogin/bin/test.pl

错误是“找不到命令”。

如果我尝试:

test.pl

错误现在是“权限被拒绝”

如果我尝试:

./test.pl

它完美地工作...... 怎么了 ??? 感谢名单

1 个答案:

答案 0 :(得分:1)

  

错误是"命令未找到"。

当您键入没有明确路径的命令时(与./test.pl不同),您的shell将搜索$PATH中列出的目录。这通常不包括./(当前目录),因此它找不到脚本。

  

错误现在是"权限被拒绝"

当您尝试直接执行脚本时(而不是执行perl并将脚本的位置作为参数传递,文件权限必须允许执行。

Windows文件权限与UNIX文件权限不同,在类UNIX系统上安装的Windows格式化磁盘通常具有硬编码(在mount命令中)文件权限。这些不包括您要执行的文件的执行权限。