Собираетесь в родительский каталог файла с cd?

Я пишу .sh, чтобы выполнить какую-то работу за меня, но сейчас я нахожусь в точке, где мне нужно перейти в каталог, в котором находится файл /path/to/file.end. Терминал не позволяет [ 111]

cd /path/to/file.end
bash: cd: /path/to/file.end: Not a directory

К сожалению, я не знаю обходного пути, поэтому было бы неплохо, если бы вы могли помочь!

9
задан 5 July 2013 в 13:53

3 ответа

Тип cd $( dirname /path/to/file.end). Это приведет вас в /path/to.

Объяснение:

  • dirname возвращает полный путь к файлу (без имени файла, которое вы получите с помощью basename) - т.е. dirname /etc/apt/apt.conf.d/99update-notifier возвращает /etc/apt/apt.conf.d
  • выражение $(anything) заменяется результатом команды в скобках. Таким образом, cd $( dirname /etc/apt/apt.conf.d/99update-notifier) выполняется как cd /etc/apt/apt.conf.d

Другая (но старая и обескураженная) запись для того же была

cd `dirname /path/to/file.end` 
0
ответ дан 5 July 2013 в 13:53

Если вы добавите «/ ..» к имени файла, которое приведет вас в правильный каталог, например cd /path/to/file.end/... Так или иначе, он работает на Cygwin.

0
ответ дан 5 July 2013 в 13:53

Другие вопросы по тегам:

Похожие вопросы: