probabilmente è perchè non tieni traccia di tutto il percorso che stai facendo.
in $dir ti arriva solo l'ultimo pezzo