LinuxSir.cn,穿越时空的Linuxsir!

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

一个简单而又难弄的问题

[复制链接]
发表于 2006-8-30 09:06:19 | 显示全部楼层 |阅读模式
LINUX的文件名可以由字母,数字,下划线,圆点构成.于是我就touch分别试了试,都成功创建文件。
   touch abc    可以找到,并且可以成功删除
   touch 1234    可以找到,并且可以成功删除
    touch _       可以找到,并且可以成功删除

touch .    就是这个不可以。用ls -l  看不到它,但是用find -name .  可以找到。并且删除不了。


想请教大家这个是为什么。可能这是个不太起眼儿的问题吧。但是我很想把它弄明白。
发表于 2006-8-30 10:02:25 | 显示全部楼层
看一看 touch 的 man page
NAME
       touch - change file timestamps
SYNOPSIS
       touch [OPTION]... FILE...
DESCRIPTION
       Update  the  access  and modification times of each FILE to the current
       time.
       -c, --no-create
              do not create any files
如果 touch 找不到 FILE, 它就会创建一个空的 FILE,加上 -c 可以关掉这个功能

在 Linux 中,一切都是文件,目录也是文件,在一个目录中,“.” 表示当前目录,即 `pwd`

如果执行 touch .,就是将当前目录的时间戳改为当前时间, ls -l 不会显示".", 使用 ls -la 可以

由于每一个目录下都有 ".", 所以在每一个目录下执行 find -name . 都会有返回值
回复 支持 反对

使用道具 举报

发表于 2006-8-30 10:51:49 | 显示全部楼层
LINUX的文件名可以由字母,数字,下划线,圆点构成


补充一下,文件名可以是除了NULL和/的任何字符。
回复 支持 反对

使用道具 举报

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

本版积分规则

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