Há uma boa chance de que um dos diretórios em /home/mysite/public_html/../logs/
seja, na verdade, um link simbólico. O comando cd
embutido na maioria dos shells modernos faz um pouco de mágica nesse caso, então cd ..
leva você ao diretório pai "lógico" - o que leva em conta como você chegou lá.
Quando você tenta touch /home/mysite/public_html/../logs/x
, não consegue essa mágica.
Considere:
$ ls -l /home/lars
public_html -> /var/www/lars
logs/
Se eu cd /home/lars/public_html
estou realmente dentro de /var/www/lars
. Portanto, tecnicamente, ../logs
não existe (porque o diretório logs
desejado está realmente em /home/lars
, não em /var/www
, que é o pai "real" de /var/www/lars
.