Thank you very much Shivendra and Ankit
I think I got confused there, sure "../" and ".." both mean one level up, and that makes sense.
However I am having trouble to understand the -d option with javac:
In the above example, from /proj/pkg directory "javac -d . A.java" won't work (I thought -d . makes the B.class to go under /proj/pkg/pkg too, and "javac -d . A.java" will work in one shot, since there will be a /proj/pkg/pkg/B.class and A.java can compile fine; but it seems like it's not the case? I mean in this case does -d only applies to A.java?
If that's the case then why when I say "javac -cp ../ -d . A.java" from /proj/pkg directory, both A.class and B.class go under /proj/pkg/pkg?
Shouldn't the B.class go under /proj/pkg, and A.class go under /proj/pkg/pkg (since -d applies to A.java only and not the B.java)?
I think I might not have a clear picture of what is going on specially in these cases when compiling one class needs compilation of intermediate classes first..
Any input and clarification would be highly appreciated...