Обычно ~
в моей оболочке отображается в /home/myuserid
. Как я могу сделать это сопоставить с другим каталогом?
3 ответа
Если вы действительно хотите это сделать, вы можете export HOME=/directory/you/want
.
Например
~ $ export HOME=/tmp
/home/youruser $ cd ~
~ $ pwd
/tmp
Но обратите внимание, что это может привести к поломке, как отмечено в комментарии: все, что ссылается на ваш домашний каталог через $HOME
или ~
будет повреждено.
Вы также можете назначить другой путь в /home/user/.bashrc
для переменной среды HOME.
export HOME=newpath
Например.
export HOME=/home/newuser
Это сделает изменение постоянным для каждого сеанса и ~
всегда будет указывать на другой указанный каталог.
Различные варианты для разных обстоятельств:
Как в Linux, так и в Cygwin вы можете временно установить домашний каталог, установив переменную среды
HOME
. Для этого используйте следующую команду (обратите внимание на отсутствие пробелов вокруг=
)export HOME=/new/dir/path
Это только временное изменение, и не каждая программа его поймет. Настройка изменится, если вы начнете новый сеанс или перезагрузите компьютер.
В Linux (по крайней мере, в Red Hat, и я был бы очень удивлен, если Ubuntu отличается), вы можете сделать изменение постоянным, выполнив следующую команду (вам может потребоваться быть пользователем root и / или префиксом команды с
sudo
).usermod -d /new/dir/path username
Это предпочтительнее ответа Маноя, так как это решение фактически просто повторяет вариант 1 каждый раз, когда вы открываете оболочку Bash; не каждая программа подхватит новый каталог.
Чтобы этот эффект вступил в силу, вам необходимо перезапустить все сеансы или просто перезагрузить компьютер.
В Cygwin для постоянного изменения необходимо отредактировать файл Cygwin
/etc/passwd
в выбранном вами текстовом редакторе. (Чтобы сделать это с помощью редактора Windows, он, вероятно, будет находиться вC:\cygwin\etc\passwd
, но убедитесь, что вы используете редактор, который сохраняет окончания строк, поэтому не Notepad.)Этот файл будет иметь строку, которая выглядит примерно так:
username:unused:23456:12345:U-GRP\username,S-1-2-34-567890-123456-789012:/old/home/dir:/bin/bash
Вам нужно изменить биты между последним и последним-последним
:
s (в приведенном выше чтении это/old/home/dir
), чтобы указать каталог, который вы хотите использовать в качестве домашнего каталога пользователя.Опять же, для того, чтобы это вступило в силу должным образом, вам необходимо закрыть все процессы Cygwin и снова открыть их, или просто перезагрузить компьютер, чтобы убедиться, что он работает правильно.
Внимание: Cygwin не имеет пробелов в имени домашнего каталога. Это не поддерживается, вызывает неисчислимые проблемы, и постоянный ответ в списке рассылки Cygwin, когда у людей возникают проблемы, «ну, тогда не делайте этого». В частности, это означает, что домашний каталог, такой как /cygwin/c/Documents and Settings/username/My Documents
- плохая идея ™.