LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1661|回复: 20

关于文件名后面的“/”的问题

[复制链接]
发表于 2008-11-8 16:45:52 | 显示全部楼层 |阅读模式
不知道大家在做LFS的时候有没有觉得,手册上面常用的目录/tools,比如--prefix=/tools ,如果用命令自动补齐的话,出现的是/tools/,关于文件名后面的“/”,到底会不会对安装产生影响呢?就我知道的mv命令,有没有“/”就会涉及到是移动到目录下,还是改名,所以“/”不能乱加。
那在配置的时候的  --prefix=/tools 加上“/”有没有什么关系呢?进一步说,对其他的命令执行结果有没有什么影响?
发表于 2008-11-8 18:12:52 | 显示全部楼层
有影响。

大多数的configure脚本,后面都不能加/,
这是因为在脚本中已经定义自动加上。所以如果你加了这个/,就有可能会编译出错,它会提示:
''找不到/usr//bin''等内容。你会看到出现了两个/,这当然是非法的目录名。

所以在configure 的时候,不要在路径最后加上/。
回复 支持 反对

使用道具 举报

发表于 2008-11-8 18:20:40 | 显示全部楼层
Post by tzfox;1905867
就我知道的mv命令,有没有“/”就会涉及到是移动到目录下,还是改名,所以“/”不能乱加。


关于这个问题,其实是你的错觉,根本不会存在这个问题的。

Linux下一切都是文件,所以mv命令绝对不会因为你加不加/而搞乱。

比如当前目录下有个普通文件temp
那么你想
mkdir temp

另外建立一个temp目录,根本不行。因为目录就是文件,这两个“文件”重名了。

你想把temp改为temp目录更加不行
mv temp temp/  
上述命令就是非法的。

你可以试试,mv命令是不会因为在最后加不加/而导致结果的不同的。
回复 支持 反对

使用道具 举报

发表于 2008-11-8 19:22:04 | 显示全部楼层
Post by ti8er;1905895
关于这个问题,其实是你的错觉,根本不会存在这个问题的。

Linux下一切都是文件,所以mv命令绝对不会因为你加不加/而搞乱。

比如当前目录下有个普通文件temp
那么你想
mkdir temp

另外建立一个temp目录,根本不行。因为目录就是文件,这两个“文件”重名了。

你想把temp改为temp目录更加不行
mv temp temp/  
上述命令就是非法的。

你可以试试,mv命令是不会因为在最后加不加/而导致结果的不同的。


一切皆文件~好东西~~~
回复 支持 反对

使用道具 举报

发表于 2008-11-8 21:24:01 | 显示全部楼层
Post by ti8er;1905895


Linux下一切都是文件,所以mv命令绝对不会因为你加不加/而搞乱。



Window下实际上也是如此
回复 支持 反对

使用道具 举报

发表于 2008-11-9 21:00:48 | 显示全部楼层
有时候还是有点关系的
譬如在FC8中:
[root@localhost /]# ls -l /var/mail
lrwxrwxrwx 1 root root 10 11-02 22:44 /var/mail -> spool/mail
[root@localhost /]# ls -l /var/mail/
总计 8
-rw-rw---- 1 ghost  mail 0 11-03 04:27 ghost
-rw-rw---- 1 lofeng mail 0 11-02 23:08 lofeng
-rw-rw---- 1 rpc    mail 0 11-02 22:50 rpc
在这种情况下分清是否有"/"很重要的
回复 支持 反对

使用道具 举报

发表于 2008-11-10 09:12:51 | 显示全部楼层
Post by lofeng410;1906377
有时候还是有点关系的
譬如在FC8中:


在这种情况下分清是否有"/"很重要的

可是我的就没有区别  
很怪  难道 我shell配置设定有问题???
ppluer [ ~ ]$ ls firefox -l
总计 8
drwx------ 10 ppluer ppluer 4096 11-04 17:08 okqespov.default
-rw-r--r--  1 ppluer ppluer   94 11-03 17:10 profiles.ini
ppluer [ ~ ]$ ls firefox/ -l
总计 8
drwx------ 10 ppluer ppluer 4096 11-04 17:08 okqespov.default
-rw-r--r--  1 ppluer ppluer   94 11-03 17:10 profiles.ini
回复 支持 反对

使用道具 举报

发表于 2008-11-10 09:28:58 | 显示全部楼层
符号链接才会在 ls -l 时出现那种区别
回复 支持 反对

使用道具 举报

发表于 2008-11-10 09:32:21 | 显示全部楼层
在后面加不加/,有没有区别,用老外的原话来说,就是:取决于实现。

我可没有说“任何情况下”目录后面加不加/是完全没有区别,我在上面不是正好说明了:

configure 脚本配置的路径不能在后面加/,
而mv加不加/都没有区别。

其实这根本不是关键,我们最重要的是明白“一切皆文件”的概念,也要明白,目录和加不加/根本没有关系。

至于在使用上,目录后加不加/,会不会有区别,就要看使用的程序是怎么设计的,这就是“取决于实现”。

ls程序在实现上就会区别后面的/。比如:

列出当前目录下的目录,但是不列出普通文件:

ls -d */

这后面的/就一定要加。这说白了只是ls这个程序的“用法”,可不要混淆了认为目录就一定要加/才是目录,那样就本末倒置了。
回复 支持 反对

使用道具 举报

发表于 2008-11-10 18:07:05 | 显示全部楼层
我有个同学LFS之后他的usr目录很搞笑~在编译软件的时候总是显示 /usr//bin....  /usr//lib...
很神奇~不知道是怎么回事~尽管如此做很多事情也没出过错误~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表