比如 cd usr/
和 cd ./usr/
或者 bash myScript
和 ./myScript
1
lxk11153 2019-12-10 17:43:53 +08:00
有时写,有时不写,(我也不知道有木有区别
感觉这个和一些编程语言写不写语句末尾;有得一比 (我是写的,因为刚接触时就写了,养成习惯了不写看着不完成) |
2
yeyu123 2019-12-10 17:48:55 +08:00
没这习惯
当前目录不会写 |
3
murphyyyy 2019-12-10 17:50:49 +08:00
是的.习惯...
因为 windows 上的历史遗留问题....执行 exe 时必须输入./xxx |
4
garlics 2019-12-10 17:55:10 +08:00
只有执行 shell 的时候会写
|
5
uxstone 2019-12-10 17:55:33 +08:00 3
rm -rf *
rm -rf ./* |
6
flyingghost 2019-12-10 17:57:23 +08:00 3
非必要的时候还习惯打./ 的同学。。。
你们不怕.忘记打或者.和 /之间多敲了个空格吗?/狗头 |
10
KyonLi 2019-12-10 18:20:05 +08:00 via iPhone
@whywhywhy #7 Windows 不是优先执行当前目录下的 exe 吗,当初刚学 Linux 还适应了好长时间./xxx 执行
|
12
k9982874 2019-12-10 18:21:33 +08:00 via iPhone
必须写,吃过 rm -rf 的亏
|
13
wangkun025 2019-12-10 18:22:04 +08:00
新手表示,不输入.
|
18
Oktfolio 2019-12-10 18:39:29 +08:00
我反正是必须写
|
19
Oktfolio 2019-12-10 18:40:32 +08:00
但是 cd 后面不写
|
21
ajax10086 2019-12-10 18:45:40 +08:00 via iPhone
第一个不写,第二个写
|
22
skinny 2019-12-10 18:55:01 +08:00
如果有通配符(没有通配符的也要按 tab 补全)必须写,这是有过教训的人才能理解的
|
23
shawnLuo 2019-12-10 19:08:29 +08:00
跑脚本的时候才会写,其他都是直接路径名
|
25
manwei6341 2019-12-10 20:04:02 +08:00
写
|
27
murphyyyy 2019-12-10 20:11:51 +08:00
|
30
liuzhiyong 2019-12-10 21:23:36 +08:00
第一种情况,cd 不会写“./”;第二种情况,执行脚本会写“./”。
|
31
lihongjie0209 2019-12-10 21:30:05 +08:00
可执行文件不在 PATH 变量中才需要这种写法, 而且是 Linux bash 才有的情况, 在 Windows CMD 下直接使用 xxx.exe 也可以直接运行。
所以写不写看你用什么 shell, 都是历史遗留问题然后变为习惯了 |
32
yan5990853 2019-12-10 21:34:17 +08:00
区别还是有的 不带./会查环境变量,可能有时候不是你想要的结果。
|
33
crella 2019-12-10 21:43:51 +08:00 via Android
@lihongjie0209 powershell 要指定.\local_app.exe ,不指定的话会报错并提示本目录有 local_app.exe
|
34
rubycedar 2019-12-10 21:47:32 +08:00 via iPhone
@shiny 我还是没明白 不带./的可执行文件只会是$path 里的,当前目录下有 ls 又能怎么样?
|
35
Sainnhepark 2019-12-10 21:49:59 +08:00 via Android
除了 cd 以外的命令都要加
|
36
icbmicbm 2019-12-11 00:37:08 +08:00 via iPhone
曾经是这样 直到有一次删东西打掉了一个“.” ... 不巧的是这个文件夹的命名还很离谱,然后当然是重装了
|
38
ys0290 2019-12-11 00:59:15 +08:00 via iPhone
鸟哥私房菜好像说执行命令的顺序是当前目录,环境变量定义,PATH
|
39
sleepm 2019-12-11 01:02:23 +08:00 via Android
这不是习惯好吧。。
一个点代表当前目录 两个点代表上一级目录 |
40
msg7086 2019-12-11 07:59:16 +08:00
|
41
AntonChen 2019-12-11 08:26:45 +08:00 via Android
自从执行 rm -rf ./* 巧漏 . 之后我就再也不用 ./ 了
|
42
Davic1 2019-12-11 09:34:25 +08:00
# 同意 39 楼
加点号敲起命令来逻辑上更顺畅一些。。。cd ./usr/(进入当前目录下的 /usr/文件夹中) |
43
chesterzzy 2019-12-11 10:07:28 +08:00
两种情况都写。因为不产生歧义。
或者可以简单地理解为,强迫症- - |
44
sleepm 2019-12-11 10:50:06 +08:00 via Android
又仔细读了下帖子。。
输路径,传参数的话,比如 cd,只要传的对就行,不会多此一举加./ 或者输命令,bash xxx 和./xxx 是有区别的 如果 xxx 头部有注释使用啥执行,那你用 bash xxx 可能就报错 比如 #!/usr/bin/env php <?php phpinfo(); 那再讲下 env 它是从 path 中找 php,如果你指定 /bin/php,在你的系统可能没问题,但是到别的系统上估计就找不到这个文件,所以 env 使脚本兼容性更好 或者再说 不加./执行当前目录下的文件,如果这个文件和 path 中的某个命令同名,那就会执行 path 中的那个,因为它会先从 path 中找那个命令 |
46
JimmyTinsley 2019-12-11 14:38:15 +08:00
除了 cd 之外都会加以保安全
|
47
gpra8764 2019-12-11 15:51:06 +08:00
@flyingghost 不太会啦,键盘上./就是在一起的,这也能加一个空格那真的狗头了
|