Яка різниця між цією командою: я використовував cd $HOME/directory/test/перед запуском кожного рядка:
cd ~
cd /
cd ~/
cd -
cd --
cd /.
cd $HOME
cd $USR
cd
І всі вони роблять однакову поведінку. У чому різниця?
Яка різниця між цією командою: я використовував cd $HOME/directory/test/перед запуском кожного рядка:
cd ~
cd /
cd ~/
cd -
cd --
cd /.
cd $HOME
cd $USR
cd
І всі вони роблять однакову поведінку. У чому різниця?
Відповіді:
Проста команда, cd <dir>яка змінює каталог <dir>.
~вказує на $HOMEкаталог/вказує кореневий каталог ~/також вказує $HOMEкаталог. Єдина відмінність полягає в тому, що він явно показує, що це каталог (косою косою рисою). cd ~/і cdта cd ~і cd $HOMEвсе роблять те ж саме.cd -Змінює робочий каталог на попередній робочий каталог .Ці спеціальні символи "." (крапка) і ".." (крапка) [Відносні параметри] :
"." символ посилається на поточний каталог, а символ ".." посилається на батьківський каталог поточного каталогу.
$USERі $HOMEє змінними довкілля
$USER= Ім'я користувача, який зараз увійшов. Цю змінну встановлює система. Ймовірно, ви не повинні змінювати його значення вручну. (наприклад: myuser1)
$HOME = Місце розташування домашнього каталогу користувача, який наразі увійшов у систему (наприклад: / home / myuser1)
Рекомендується використовувати cd "$HOME"або cd "$USER"так, що cdотримує належний вклад у випадку місця тощо.
cd /і cd //.
//трактується як /. Так cd//home само, якcd/home
cdдо невизначеної змінної середовища. (Змінна розширюється на порожній рядок і cdбез запуску аргументів, що змінює домашній каталог.) Це може бути з тим, що відбувається далі cd $USR, оскільки, хоча USERзмінна майже завжди визначається, USRрідко є.
-. Це те саме, що і ..тоді?
cd -перенесе вас до останнього каталогу, де ви працювали (дано $OLDPWD). Він також друкує старий шлях до каталогу. ..посилається на батьківський каталог; cd ..перемістить вас на один рівень вгору. Якщо ви працювали в батьківському каталозі раніше, cd -і вони cd ..будуть мати однаковий ефект.
cd ~
Зміни у вашому домашньому каталозі. ~на початку шляху - це абревіатура, що означає "домашній каталог користувача".
cd /
Зміни до кореневого каталогу /. Тут нічого особливого не відбувається.
cd ~/
Заключення /не має ніякої різниці. Це змушує ~інтерпретувати як каталог, але cdвсе одно це робить. (Закінчення /змінює символічне посилання на каталог - порівняйте ls -ld /var/spool/mailта ls -ld /var/spool/mail/.)
cd -
Зміни до каталогу, в якому ви були до попередньої cdкоманди. Це особливий випадок cdкоманди: коли її аргумент -, він робить це.
cd --
У більшості команд, в тому числі cd, аргумент --означає, що все, що з’явиться після цього, буде розглядатися як операнд, а не як опція. Так, наприклад, cd -- -Pозначає перейти в каталог з назвою -P, тоді як cd -Pпередається -Pпараметр (який має значення, якщо шлях, який ви змінюєте, йде через символічне посилання). Коли після аргументу немає аргументу --, він --нічого не робить; ця команда еквівалентна звичайній cd. cdбез аргументів, в свою чергу, це ярлик для cd ~.
cd /.
Еквівалентно cd /тому, що /.це той самий каталог, що і /( .здебільшого корисний самостійно, означає «поточний каталог»).
cd $HOME
Зміни у вашому домашньому каталозі. Це не вдається, якщо шлях до вашого домашнього каталогу містить пробіл або інші символи. Завжди використовуйте подвійні лапки підстановок змінних : cd "$HOME".
cd $USR
Ймовірно, це нічого не робить, тому що USRв вашій оболонці не визначена назва змінної , отже, команда, яка виконується, справедлива cd.
$fooзовні котирує рядки mangles, що містять пробіли або символи: \[*?(і більше в деяких конфігураціях оболонок).
"$HOME"завжди працює так, щоб означати домашній каталог виклику користувача. "/home/$USER"робить те ж саме, якщо домашній каталог користувача знаходиться в цьому місці (що не завжди буває в інституційних мережах). Якщо вам не потрібно зробити щось, що стосується конкретної установки, /home/$USERце ніколи не підходить.