Попробуйте использовать утилиту MegaCli для RAID-контроллеров в Linux. Вы можете получить его на сайте LSI. Я не знаю, какая у вас модель RAID-контроллера, и может ли эта утилита ее увидеть.
Здесь играют роль две вещи. Во-первых, только -
расширяется до вашего предыдущего каталога. Это объясняется в разделе cd
документа man bash
(выделено мной):
Аргумент
-
преобразуется в $ OLDPWD перед попыткой смены каталога. Если используется непустое имя каталога из CDPATH, или если-
является первым аргументом , и смена каталога прошла успешно, абсолютный путь к новому рабочему каталогу будет записывается в стандартный вывод . Возвращаемое значение - истина, если каталог был успешно изменен; в противном случае - ложь.
Итак, простой cd -
вернет вас в предыдущий каталог и распечатает имя каталога. Другая команда описана в разделе «Расширение тильды»:
Если префикс тильды -
~ +
, значение переменной оболочки PWD заменяет префикс тильды. Если тильда-префикс представляет собой~ -
, значение переменной оболочки OLDPWD, если оно установлено, заменяется. Если символы, следующие за тильдой в префиксе тильды, состоят из числа N, необязательно с префиксом+
или-
, то { Префикс тильды {1}} заменяется соответствующим элементом из стека каталогов , так как он будет отображаться встроенным каталогом , вызываемым с префиксом тильды в качестве аргумента. Если символы , следующие за тильдой в префиксе тильды, состоят из числа без начала+
или-
,+
предполагается.
Это может быть легче понять на примере:
$ pwd
/home/terdon
$ cd ~/foo
$ pwd
/home/terdon/foo
$ cd /etc
$ pwd
/etc
$ echo ~ ## prints $HOME
/home/terdon
$ echo ~+ ## prints $PWD
/etc
$ echo ~- ## prints $OLDPWD
/home/terdon/foo
Итак, в общем, -
означает «предыдущий каталог». Вот почему cd -
сам по себе вернет вас туда, где вы были.
Основное отличие состоит в том, что cd -
специфичен для встроенной команды cd
. Если вы попытаетесь ввести echo -
, он просто напечатает -
. ~ -
является частью функции раскрытия тильды и ведет себя аналогично переменной. Вот почему вы можете echo ~ -
и получить что-то значимое. Вы также можете использовать его в cd ~ -
, но вы также можете использовать его в любой другой команде. Например cp ~ - / *.
, что эквивалентно cp "$ OLDPWD" / *.
TL; DR: cd -
встроен в cd
, ~ -
является более поздним расширением ~ [name]
, не специфичен для cd
.
POSIX.1-2008 Shell & Utilities определяет cd -
как особый случай , специфичный для команды cd
:
Когда в качестве операнда используется
-
, это должно быть эквивалентно команде:
cd "$ OLDPWD" && pwd
, которая переходит в предыдущий рабочий каталог и затем записывает свой имя.
Расширение ~ -
будет расширено до $ OLDPWD
перед выполнением любой команды и может быть передано в качестве аргумента для любой команды, а не только cd
. Это более позднее расширение в ksh и bash .
Вышеупомянутый стандарт POSIX.1-2008 Shell & Utilities также содержит подробное объяснение расширения тильды . Формулировка очень специфична, чтобы разрешить ~ -
как неопределенное поведение в рамках стандарта, где ~ [name]
относится к $ HOME
if ] [имя]
- пустая строка или домашний каталог пользователя имя
, если имя
является допустимым именем пользователя.
~ -
подлежит раскрытию тильды (см. Man bash), поэтому cd
видит непосредственно предыдущее имя каталога . -
не расширяется оболочкой, cd
видит его напрямую и ведет себя, как описано в документации:
Аргумент - эквивалентен $ OLDPWD. Если используется непустое имя каталога из CDPATH, или если - является первым аргументом и изменение каталога прошло успешно, в стандартный вывод записывается абсолютный путь к новому рабочему каталогу.