Shell脚本,目录是可写的奇怪行为
以下是Shell脚本,目录是可写的奇怪行为,shell,ubuntu,scripting,dash-shell,Shell,Ubuntu,Scripting,Dash Shell,以下是测试的手册页中的-w选项说明: -w FILE FILE exists and write permission is granted 举个例子比千言万语更好: $ ls -ld /home/maxime/.gvfs dr-x------ 2 maxime maxime 0 Aug 5 22:53 /home/maxime/.gvfs $ [ -w /home/maxime/.gvfs ] && echo "is writable" is w
测试的手册页中的-w
选项说明:
-w FILE
FILE exists and write permission is granted
举个例子比千言万语更好:
$ ls -ld /home/maxime/.gvfs
dr-x------ 2 maxime maxime 0 Aug 5 22:53 /home/maxime/.gvfs
$ [ -w /home/maxime/.gvfs ] && echo "is writable"
is writable
$ touch /home/maxime/.gvfs/file
touch: cannot touch `/home/maxime/.gvfs/file': No such file or directory
如您所见,目录不应该是可写的:只设置了r
和x
标志。
但是,test
说我可以用它来写。。。第一件奇怪的事。另一个是当我尝试在其中创建文件时发生的情况:没有这样的文件或目录
顺便说一句,我以用户“maxime”的身份运行上述命令,并使用Ubuntu12.04中的dash
嗯,我在这里有点迷路了,有人解释过吗?.gvfs
是一个特殊的文件,实际上是由gvfs fuse daemon
创建的虚拟文件系统。你不应该直接使用它 .gvfs
是一个特殊文件,实际上是由gvfs-fuse-daemon
创建的虚拟文件系统。你不应该直接使用它 除了test
解析为另一个二进制文件而不是/usr/bin/test
,我不知道。你能试试test-w/home/maxime/.gvfs;echo$?
并查看它是1还是0?这里是:/usr/bin/test-w/home/maxime/.gvfs;echo$?
。输出:0
除了test
解析为另一个二进制文件,而不是/usr/bin/test
,不知道。你能试试test-w/home/maxime/.gvfs;echo$?
并查看它是1还是0?这里是:/usr/bin/test-w/home/maxime/.gvfs;echo$?
。输出:0
正常。事实上,在我的shell脚本中,我希望在用户的主目录中找到任何可写目录。我是否应该为.gvfs
“例外”?好的。事实上,在我的shell脚本中,我希望在用户的主目录中找到任何可写目录。我是否应该为.gvfs
“例外”?