Ви справді перебуваєте /home/cpm135/public_html/class- це єдина правильна відповідь на питання "який у мене поточний робочий каталог".
Коли ви посилаєтесь на /var/lib/class... це не справді про те, де ви знаходитесь, а більше про те, яким шляхом ви проїхали туди .
Під час запуску /bin/pwdвін визначає поточний робочий каталог, переглядаючи. і .. каталоги (ті, що вказані вгорі ls -la), які розробляють, який каталог у .. відповідає. а потім працює назад до .. і. посилайтеся на той самий каталог. Після того, як буде зроблено все це, він знатиме, що це ваш поточний робочий каталог.
Коли ви запускаєте pwdвбудовану оболонку, вона не дотримується цієї процедури (хоча при необхідності вона може зробити якусь частину) - натомість вона запам'ятовує шлях, який ви пройшли сюди. Отже, кожен раз, коли ви виконуєте cdкоманду, ваша оболонка пам'ятає, що в рамках шляху до того, де ви зараз знаходитесь, і pwdвиводить, що вона розрахована, виходячи з усіх cdкоманд, які ви виконали - які можуть бути, а можуть і не бути вашими фактичними робочий каталог.
Речі можуть стати дуже дивними, коли ви робите ln -s . fooта продовжуєте працювати cdв foo - /bin/pwdскажуть, що ви все ще в тому самому каталозі, але вбудована оболонка pwdскаже, що ви перебуваєте /foo/foo/foo/foo/foo/foo- хоча такого каталогу навіть насправді не існує. (Це сказав - ви, мабуть, можете cd в це ввійти.)
Ще одне джерело плутанини є, якщо каталоги будуть перейменовані. /bin/pwdТоді негайно підходить до зміни, але вбудований pwdне буде, поки ви не зробите щось, що скаже, що стара назва каталогів не має значення.