Обычно ~ в моей оболочке отображается в /home/myuserid . Как я могу сделать это сопоставить с другим каталогом?

3 ответа3

5

Если вы действительно хотите это сделать, вы можете export HOME=/directory/you/want .

Например

~ $ export HOME=/tmp
/home/youruser $ cd ~
~ $ pwd
/tmp

Но обратите внимание, что это может привести к поломке, как отмечено в комментарии: все, что ссылается на ваш домашний каталог через $HOME или ~ будет повреждено.

1

Вы также можете назначить другой путь в /home/user/.bashrc для переменной среды HOME.
export HOME=newpath Например. export HOME=/home/newuser Это сделает изменение постоянным для каждого сеанса и ~ всегда будет указывать на другой указанный каталог.

0

Различные варианты для разных обстоятельств:

  1. Как в Linux, так и в Cygwin вы можете временно установить домашний каталог, установив переменную среды HOME . Для этого используйте следующую команду (обратите внимание на отсутствие пробелов вокруг =)

    export HOME=/new/dir/path
    

    Это только временное изменение, и не каждая программа его поймет. Настройка изменится, если вы начнете новый сеанс или перезагрузите компьютер.

  2. В Linux (по крайней мере, в Red Hat, и я был бы очень удивлен, если Ubuntu отличается), вы можете сделать изменение постоянным, выполнив следующую команду (вам может потребоваться быть пользователем root и / или префиксом команды с sudo).

    usermod -d /new/dir/path username
    

    Это предпочтительнее ответа Маноя, так как это решение фактически просто повторяет вариант 1 каждый раз, когда вы открываете оболочку Bash; не каждая программа подхватит новый каталог.

    Чтобы этот эффект вступил в силу, вам необходимо перезапустить все сеансы или просто перезагрузить компьютер.

  3. В 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 - плохая идея ™.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .