1

Я выполнял несколько простых команд в bash, и одна из команд, которые я запускал, удалила мой текущий рабочий каталог (ничего не деструктивно, я просто использовал git, чтобы проверить ветку, в которой этот каталог не существует).

Теперь я застрял в удаленном каталоге, и CD, похоже, не хочет меня выпускать:

$ cd ..
bash: cd: ..: No such file or directory

Какой самый простой способ выбраться из этого каталога и вернуться к его родителю?

Обратите внимание, что каталог, в котором я нахожусь, хранится в разделе NTFS, что может объяснить, почему cd .. выдает ошибку, когда такое поведение не кажется нормой при выполнении cd из удаленного каталога в Linux.

(Предположительно, перепечатка абсолютного пути к каталогу и передача его cd будет работать здесь, но путь к родительскому каталогу действительно длинный, и я ленивый. Есть ли лучший способ попасть в родительский каталог, чем перепечатывать его длинный абсолютный путь?)

4 ответа4

1

cd - абсолютный путь, а не путь относительно удаленного каталога.

Например, cd /home/username/

1

Поскольку bash, похоже, не распознает относительные пути, такие как .. в этом случае, вам придется вместо этого использовать абсолютный путь. Например:

cd ~/path/to/dir

Чтобы просто вернуться в родительский каталог, вы можете использовать следующее, что намного быстрее, чем перепечатывать абсолютный путь к каталогу, в котором вы находитесь:

cd "$(dirname "$(pwd)")"

Вот простая функция, которую вы можете добавить в свой файл .bashrc чтобы получить эту функцию с помощью одной команды (также поддерживается аргумент, который можно использовать для указания количества уровней, которые нужно поднять):

# Allow easily going up multiple directories, even when the current directory
# is a deleted folder on an NTFS share.
function up() {
  local dir=`pwd`
  local n=${1:-1};
  for ((; n>0; n--)) {
    dir=`dirname "$dir"`
  }
  cd "$dir"
}
0

Закладки для

Я предлагаю вам прочитать SSH, большинство оболочек позволяют использовать табуляцию для упрощения ввода команд.

Если вы печатаете

кд / ч

Затем нажмите TAB, он либо покажет список каталогов, на которые вы также можете перейти, либо, если в / начинается только один каталог, начинающийся с буквы h, например home, он автоматически заполнит его до

CD / дом

Как только вы поймете это, это может сэкономить вам много времени.

Это решает, что вы ленивый!

Абсолютный Путь

Как вы знаете, вы должны CD на абсолютный путь.

Быстрый способ сделать это - просто запустить

CD

Так как в большинстве систем вы попадете в каталог пользователей по умолчанию, обычно это /home /$ user

0

Я не уверен, почему вы застряли

[alexus@wcmisdlin02 ~]$ mkdir 1
[alexus@wcmisdlin02 ~]$ cd 1
[alexus@wcmisdlin02 1]$ rm -rf ../1
[alexus@wcmisdlin02 1]$ cd ..
[alexus@wcmisdlin02 ~]$ 

... но вы всегда можете просто запустить cd или cd ~

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