请教一条linux命令的意思

来源:百度知道 编辑:UC知道 时间:2024/07/04 19:22:06
#. 文件名
在.和文件名间有个空格,好像是执行这个文件的意思,那和 ./文件名 有什么区别?
是 #表示root用户

. 文件名 就是执行该文件,. 是命令,老旧shell 用这个,等如
bash 内建的 source 命令

./ 是在当前目录的意思, ./文件名 就是在当前目录下执行,但文件必需是可执行文件. 举个例比较易理解

User@User-PC ~
$ cat a
#! /bin/bash

echo "hello world"

User@User-PC ~
$ ls -l a
-rw-r--r-- 1 User None 33 2009-10-17 22:24 a

User@User-PC ~

这文件不是可执行文件,我门用 . 或 source 来执行

User@User-PC ~
$ . a
hello world

User@User-PC ~
$ source a
hello world

User@User-PC ~
$

现在用 ./文件名

User@User-PC ~
$ pwd
/home/User

当前是 /home/User

User@User-PC ~
$ ./a
bash: ./a: Permission denied

User@User-PC ~
$
文件没执行权闲,执行不了

User@User-PC ~
$ chmod +x a

User@User-PC ~
$ ls -l a
-rwxr-xr-x 1 User None 33 2009-10-17 22:24 a*

User@User-PC ~
$ ./a
hello world

User@User-PC ~
$

改变文件属性变成可执行才生