У мене є два випадки його використання, і мені цікаво, що кожен робить:
service=~
mv ~/Desktop/Service$version.tgz $service
Що робить маленький каламутно ~
?
Потім, після цього, що б cd $service
робити?
У мене є два випадки його використання, і мені цікаво, що кожен робить:
service=~
mv ~/Desktop/Service$version.tgz $service
Що робить маленький каламутно ~
?
Потім, після цього, що б cd $service
робити?
Відповіді:
Шкірлива річ називається «тильда».
Він розширюється до вашого домашнього каталогу.
Спробуйте
echo ~
echo $HOME
Обидва твердження ставлять ваш домашній каталог сам по собі на рядок.
Дивіться bash Tilde Expansion .
"Шкідливий" називається тильдою. Він використовується для посилання на ваш домашній каталог, який в Linux зазвичай є /home/username
. Він також зберігається в $HOME
змінній середовища. Розширення ~
до місця розташування домашнього каталогу - це завдання оболонки (наприклад, zsh або bash) або файлового менеджера (наприклад, Nautilus), а не файлової системи чи ОС її самості.
Ви також можете скористатися цим посиланням на домашній каталог іншого користувача. Наприклад, якщо ім’я іншого користувача є bob
, ви можете звернутися до їх домашнього каталогу, з ~bob
якого буде розширено/home/bob/
.
Перший приклад, який ви подали, встановлює змінну service
на ~
, тому вона відповідає вашому домашньому каталогу. Це еквівалентно service=/home/username
абоservice=$HOME
.
Другий приклад копіює файл ~/Desktop/Service$version.tgz
(або /home/username/Desktop/Service$version.tgz
) в /home/username
. Ця команда еквівалентна:
mv ~/Desktop/Service$version.tgz ~
або
mv ~/Desktop/Service$version.tgz $HOME
або
mv ~/Desktop/Service$version.tgz /home/username/
Третій змінить поточний робочий каталог ( $PWD
) на /home/username/
. Це еквівалентно:
cd /home/username/
або
cd $HOME
І в обох # 1 & # 2: ~ - ваш домашній каталог, тому, якщо ви qwerty, це, швидше за все, буде каталог / home / qwerty. Тож спробуйте ls ~
це побачити.
Для №1: мені здається, що служба змінної визначається як ваш домашній каталог.
Це означає, що після # 2 переміщено файл tgz з підкаталогу Desktop у ваш домашній каталог, №3 потім зміниться в домашній каталог.
Схоже, команди виконують наступне.
Призначте змінну, яку називають службою, до місцевої домашньої папки, наприклад:
/home/user
Він переміщує файл із робочого столу на верхній рівень домашнього каталогу, наприклад:
/home/user/Desktop/Service$version.tgz $service
Потім сценарій змінює каталог на верхній рівень домашнього каталогу.
Отже, весь сценарій - це просто очищення робочого столу, переміщення файлу /home/user
замість нього.