как указать путь с пробелом внутри файла в linux - PullRequest
0 голосов
/ 16 марта 2020

cat ~ / .last_dir

/mnt/c/Users/Administrator/OneDrive/Desktop/main project/backup/main project 2

cd cat ~/.last_dir

-bash: cd: too many arguments

Я пытался использовать backsla sh внутри файл

/mnt/c/Users/Administrator/OneDrive/Desktop/main\ project/backup/main\ project\ 2

Все та же ошибка

Ответы [ 3 ]

1 голос
/ 16 марта 2020

Вам нужно процитировать результаты расширения cat ...:

cd "$(cat ~/.last_dir)"
1 голос
/ 16 марта 2020
cd "$(<~/.last_dir)"

Во-первых, поместите кавычки вокруг $(...), чтобы сделать пробел частью имени файла.
Во-вторых, $(<...) - это конструкция bash, которая читает файл напрямую без выполняется cat, но не является полностью переносимым.

Для более обобщенной c, менее bash -specifi c версии используйте решение Максима.

0 голосов
/ 16 марта 2020

просто поставьте кавычки вокруг вашего пути:

"/mnt/c/Users/Administrator/OneDrive/Desktop/main project/backup/main project 2"

это должно работать в большинстве случаев

...