我一定遗漏了一些明显的东西。
这有效:
[root@host2 /]# cd /home/mysite/public_html/../logs
[root@host2 /home/mysite/logs]# touch x
Run Code Online (Sandbox Code Playgroud)
这为什么不呢?
[root@host2 /]# touch /home/mysite/public_html/../logs/x
touch: cannot touch `/home/mysite/public_html/../logs/x': No such file or directory
Run Code Online (Sandbox Code Playgroud)
lar*_*sks 12
很有可能其中的一个目录/home/mysite/public_html/../logs/实际上是一个符号链接。cd在这种情况下,大多数现代 shell 中内置的命令会产生一些魔力,因此cd ..会将您带到“逻辑”父目录——它考虑了您是如何到达那里的。
当您尝试时touch /home/mysite/public_html/../logs/x,您不会获得这种魔力。
考虑:
$ ls -l /home/lars
public_html -> /var/www/lars
logs/
Run Code Online (Sandbox Code Playgroud)
如果我cd /home/lars/public_html真的在/var/www/lars. 因此从技术上讲,../logs不存在(因为logs我想要目录实际上是/home/lars,不是/var/www,这是“真正”的父母/var/www/lars。
| 归档时间: |
|
| 查看次数: |
4438 次 |
| 最近记录: |