2017-04-17 22 views
0

例如,我有一个名为file2的文件可以回应某些内容。为什么在Linux中使用./file2之后会得到“权限被拒绝”?

在外壳

所以,键入此

# ./file2 

它显示

允许后拒绝

如果我错了吗?

+0

您正试图执行一个您没有权限的文件。要么您没有适当的权限,要么文件无法执行。 –

+1

重复项是标题中问题的重复 - 这与您在问题主体中提供的问题不同。 –

回答

3

您正在尝试执行文件,并且您没有正确的权限。当你用你的文本编辑器创建一个新的Bash脚本(比如说Vim)时,你应该拥有以下权限:-rw-r--r--。作为一个用户,你可以读写这个文件,但是你不能用./来执行它。

  1. 如果要在不更改权限的情况下执行文件,可以使用以下命令:bash myFile.sh

  2. 如果你想执行一个文件./,你将不得不修改权限。类似的东西是好的:chmod +x myFile.sh

  3. 如果您不想与./纠缠并喜欢从其他内置命令的任何位置调用myFile.sh,请将可执行文件移动到PATH中的目录中。 /usr/local/bin应该是一个明智的选择。检查你的路径以echo $PATH,以防万一......

+1

我建议'$ HOME/bin'是一个更好的选择(到目前为止)随机命令。只有对机器上的每个人都有用的命令才属于'/ usr/local/bin'。 –

+0

@JonathanLeffler感谢您的评论。你是完全正确的。为了方便,我建议'/ usr/local/bin',但使用'$ HOME/bin'会更好。 ;) – Badacadabra

1

.指的是当前的工作目录和..指父目录。因此./file2表示“执行当前目录中名为file2的文件”。如果没有./,shell将在PATH的所有目录中搜索file2。如果要执行它,请将chmod +x ./file2的执行位添加并再试一次。如果您只想查看它,请尝试使用less ./file2

相关问题