Как иметь путь, содержащий пробелы в PATH?

Я попробовал

export TASK=$HOME/Ubuntu\ One и экспортировал TASK="$HOME/Ubuntu One"

, но не работает.

7
задан 14 February 2011 в 23:02

55 ответов

Это не определение, с которым у вас возникают проблемы, это использование. Вам нужно обернуть все, где вы используете переменную в кавычках. См. Этот пример:

oli@bert:~/Music$ export B="$HOME/Music/Yeah Yeah Yeahs/"
oli@bert:~/Music$ cd $B
-bash: cd: /home/oli/Music/Yeah: No such file or directory
oli@bert:~/Music$ cd "$B"
oli@bert:~/Music/Yeah Yeah Yeahs$
10
ответ дан 25 May 2018 в 22:59

Это не определение, с которым у вас возникают проблемы, это использование. Вам нужно обернуть все, где вы используете переменную в кавычках. См. Этот пример:

oli@bert:~/Music$ export B="$HOME/Music/Yeah Yeah Yeahs/" oli@bert:~/Music$ cd $B -bash: cd: /home/oli/Music/Yeah: No such file or directory oli@bert:~/Music$ cd "$B" oli@bert:~/Music/Yeah Yeah Yeahs$
10
ответ дан 25 July 2018 в 22:29

Это не определение, с которым у вас возникают проблемы, это использование. Вам нужно обернуть все, где вы используете переменную в кавычках. См. Этот пример:

oli@bert:~/Music$ export B="$HOME/Music/Yeah Yeah Yeahs/" oli@bert:~/Music$ cd $B -bash: cd: /home/oli/Music/Yeah: No such file or directory oli@bert:~/Music$ cd "$B" oli@bert:~/Music/Yeah Yeah Yeahs$
10
ответ дан 26 July 2018 в 21:53

Это не определение, с которым у вас возникают проблемы, это использование. Вам нужно обернуть все, где вы используете переменную в кавычках. См. Этот пример:

oli@bert:~/Music$ export B="$HOME/Music/Yeah Yeah Yeahs/" oli@bert:~/Music$ cd $B -bash: cd: /home/oli/Music/Yeah: No such file or directory oli@bert:~/Music$ cd "$B" oli@bert:~/Music/Yeah Yeah Yeahs$
10
ответ дан 31 July 2018 в 11:12

Это не определение, с которым у вас возникают проблемы, это использование. Вам нужно обернуть все, где вы используете переменную в кавычках. См. Этот пример:

oli@bert:~/Music$ export B="$HOME/Music/Yeah Yeah Yeahs/" oli@bert:~/Music$ cd $B -bash: cd: /home/oli/Music/Yeah: No such file or directory oli@bert:~/Music$ cd "$B" oli@bert:~/Music/Yeah Yeah Yeahs$
10
ответ дан 31 July 2018 в 12:10

Это не определение, с которым у вас возникают проблемы, это использование. Вам нужно обернуть все, где вы используете переменную в кавычках. См. Этот пример:

oli@bert:~/Music$ export B="$HOME/Music/Yeah Yeah Yeahs/" oli@bert:~/Music$ cd $B -bash: cd: /home/oli/Music/Yeah: No such file or directory oli@bert:~/Music$ cd "$B" oli@bert:~/Music/Yeah Yeah Yeahs$
10
ответ дан 2 August 2018 в 03:55

Это не определение, с которым вы сталкиваетесь, это использование. Вам нужно обернуть все, где вы используете переменную в кавычках. См. Этот пример:

  oli @ bert: ~ / Music $ export B = "$ HOME / Music / Yeah Yeah Yeahs /" oli @ bert: ~ / Music $ cd $ B -bash:  cd: / home / oli / Music / Yeah: Нет такого файла или каталога oli @ bert: ~ / Music $ cd "$ B" oli @ bert: ~ / Music / Yeah Yeah Yeahs $  
10
ответ дан 4 August 2018 в 19:58

Это не определение, с которым вы сталкиваетесь, это использование. Вам нужно обернуть все, где вы используете переменную в кавычках. См. Этот пример:

  oli @ bert: ~ / Music $ export B = "$ HOME / Music / Yeah Yeah Yeahs /" oli @ bert: ~ / Music $ cd $ B -bash:  cd: / home / oli / Music / Yeah: Нет такого файла или каталога oli @ bert: ~ / Music $ cd "$ B" oli @ bert: ~ / Music / Yeah Yeah Yeahs $  
10
ответ дан 6 August 2018 в 04:01

Это не определение, с которым вы сталкиваетесь, это использование. Вам нужно обернуть все, где вы используете переменную в кавычках. См. Этот пример:

  oli @ bert: ~ / Music $ export B = "$ HOME / Music / Yeah Yeah Yeahs /" oli @ bert: ~ / Music $ cd $ B -bash:  cd: / home / oli / Music / Yeah: Нет такого файла или каталога oli @ bert: ~ / Music $ cd "$ B" oli @ bert: ~ / Music / Yeah Yeah Yeahs $  
10
ответ дан 7 August 2018 в 21:59

Это не определение, с которым вы сталкиваетесь, это использование. Вам нужно обернуть все, где вы используете переменную в кавычках. См. Этот пример:

  oli @ bert: ~ / Music $ export B = "$ HOME / Music / Yeah Yeah Yeahs /" oli @ bert: ~ / Music $ cd $ B -bash:  cd: / home / oli / Music / Yeah: Нет такого файла или каталога oli @ bert: ~ / Music $ cd "$ B" oli @ bert: ~ / Music / Yeah Yeah Yeahs $  
10
ответ дан 10 August 2018 в 10:13

Это не определение, с которым вы сталкиваетесь, это использование. Вам нужно обернуть все, где вы используете переменную в кавычках. См. Этот пример:

  oli @ bert: ~ / Music $ export B = "$ HOME / Music / Yeah Yeah Yeahs /" oli @ bert: ~ / Music $ cd $ B -bash:  cd: / home / oli / Music / Yeah: Нет такого файла или каталога oli @ bert: ~ / Music $ cd "$ B" oli @ bert: ~ / Music / Yeah Yeah Yeahs $  
10
ответ дан 13 August 2018 в 16:36

Попробуйте

export TASK="$HOME/Ubuntu\ One"

В обоих экспортированных вами выпусках, когда вы эхом $ TASK, результат:

/home/user/Ubuntu One

Это не ожидаемое поведение, потому что когда вы пишете что-то например,

cp $TASK/file somewhere_else/

bash расширит его до

cp /home/user/Ubuntu One/file somewhere_else/

, что, конечно, неверно.

Поэтому нам нужно поместить наш путь в кавычки и избежать пробела.

2
ответ дан 25 May 2018 в 22:59
  • 1
    Это неверно. Вы попробовали? Если вы это сделаете, cp видит обратную косую черту, а cp не обрабатывает обратную косую черту, то оболочка. – Mikel 15 February 2011 в 02:56

Эта страница подробно объясняет проблему. Это хорошая идея прочитать его полностью http://mywiki.wooledge.org/Arguments

0
ответ дан 25 May 2018 в 22:59

Это неудобное и неуклюжее поведение является результатом неразумного выбора во имя каталога «Ubuntu One». К сожалению, для этого не планируется никаких исправлений.

Один из вариантов - использовать Dropbox, который предлагает аналогичные функции.

0
ответ дан 25 May 2018 в 22:59

Вместо использования Dropbox я сделал символическую ссылку:

ln -s Ubuntu\ One UbuntuOne

В моем конкретном случае я хотел импортировать модули python из каталога в облаке:

ln -s Ubuntu\ One/pythonfiles pythonfiles
export PYTHONPATH="$PYTHONPATH:$HOME/pythonfiles/"

Я согласен, идиотом помещать пробелы в имена файлов linux.

0
ответ дан 25 May 2018 в 22:59

Попробуйте

export TASK="$HOME/Ubuntu\ One"

В обоих экспортированных вами выпусках, когда вы эхом $ TASK, результат:

/home/user/Ubuntu One

Это не ожидаемое поведение, потому что когда вы пишете что-то например,

cp $TASK/file somewhere_else/

bash расширит его до

cp /home/user/Ubuntu One/file somewhere_else/

, что, конечно, неверно.

Поэтому нам нужно поместить наш путь в кавычки и избежать пробела.

2
ответ дан 25 July 2018 в 22:29
  • 1
    Это неверно. Вы попробовали? Если вы это сделаете, cp видит обратную косую черту, а cp не обрабатывает обратную косую черту, то оболочка. – Mikel 15 February 2011 в 02:56

Эта страница подробно объясняет проблему. Это хорошая идея прочитать его полностью http://mywiki.wooledge.org/Arguments

0
ответ дан 25 July 2018 в 22:29

Это неудобное и неуклюжее поведение является результатом неразумного выбора во имя каталога «Ubuntu One». К сожалению, для этого не планируется никаких исправлений.

Один из вариантов - использовать Dropbox, который предлагает аналогичные функции.

0
ответ дан 25 July 2018 в 22:29

Вместо использования Dropbox я сделал символическую ссылку:

ln -s Ubuntu\ One UbuntuOne

В моем конкретном случае я хотел импортировать модули python из каталога в облаке:

ln -s Ubuntu\ One/pythonfiles pythonfiles export PYTHONPATH="$PYTHONPATH:$HOME/pythonfiles/"

Я согласен, идиотом помещать пробелы в имена файлов linux.

0
ответ дан 25 July 2018 в 22:29

Попробуйте

export TASK="$HOME/Ubuntu\ One"

В обоих экспортированных вами выпусках, когда вы эхом $ TASK, результат:

/home/user/Ubuntu One

Это не ожидаемое поведение, потому что когда вы пишете что-то например,

cp $TASK/file somewhere_else/

bash расширит его до

cp /home/user/Ubuntu One/file somewhere_else/

, что, конечно, неверно.

Поэтому нам нужно поместить наш путь в кавычки и избежать пробела.

2
ответ дан 26 July 2018 в 21:53

Эта страница подробно объясняет проблему. Это хорошая идея прочитать его полностью http://mywiki.wooledge.org/Arguments

0
ответ дан 26 July 2018 в 21:53

Это неудобное и неуклюжее поведение является результатом неразумного выбора во имя каталога «Ubuntu One». К сожалению, для этого не планируется никаких исправлений.

Один из вариантов - использовать Dropbox, который предлагает аналогичные функции.

0
ответ дан 26 July 2018 в 21:53

Вместо использования Dropbox я сделал символическую ссылку:

ln -s Ubuntu\ One UbuntuOne

В моем конкретном случае я хотел импортировать модули python из каталога в облаке:

ln -s Ubuntu\ One/pythonfiles pythonfiles export PYTHONPATH="$PYTHONPATH:$HOME/pythonfiles/"

Я согласен, идиотом помещать пробелы в имена файлов linux.

0
ответ дан 26 July 2018 в 21:53

Попробуйте

export TASK="$HOME/Ubuntu\ One"

В обоих экспортированных вами выпусках, когда вы эхом $ TASK, результат:

/home/user/Ubuntu One

Это не ожидаемое поведение, потому что когда вы пишете что-то например,

cp $TASK/file somewhere_else/

bash расширит его до

cp /home/user/Ubuntu One/file somewhere_else/

, что, конечно, неверно.

Поэтому нам нужно поместить наш путь в кавычки и избежать пробела.

2
ответ дан 31 July 2018 в 11:12

Эта страница подробно объясняет проблему. Это хорошая идея прочитать его полностью http://mywiki.wooledge.org/Arguments

0
ответ дан 31 July 2018 в 11:12

Вместо использования Dropbox я сделал символическую ссылку:

ln -s Ubuntu\ One UbuntuOne

В моем конкретном случае я хотел импортировать модули python из каталога в облаке:

ln -s Ubuntu\ One/pythonfiles pythonfiles export PYTHONPATH="$PYTHONPATH:$HOME/pythonfiles/"

Я согласен, идиотом помещать пробелы в имена файлов linux.

0
ответ дан 31 July 2018 в 11:12

Это неудобное и неуклюжее поведение является результатом неразумного выбора во имя каталога «Ubuntu One». К сожалению, для этого запланировано no fix .

Один из вариантов - использовать Dropbox, который предлагает аналогичную функциональность.

0
ответ дан 31 July 2018 в 11:12

Попробуйте

export TASK="$HOME/Ubuntu\ One"

В обоих экспортированных вами выпусках, когда вы эхом $ TASK, результат:

/home/user/Ubuntu One

Это не ожидаемое поведение, потому что когда вы пишете что-то например,

cp $TASK/file somewhere_else/

bash расширит его до

cp /home/user/Ubuntu One/file somewhere_else/

, что, конечно, неверно.

Поэтому нам нужно поместить наш путь в кавычки и избежать пробела.

2
ответ дан 31 July 2018 в 12:10
  • 1
    Это неверно. Вы попробовали? Если вы это сделаете, cp видит обратную косую черту, а cp не обрабатывает обратную косую черту, то оболочка. – Mikel 15 February 2011 в 02:56

Эта страница подробно объясняет проблему. Это хорошая идея прочитать его полностью http://mywiki.wooledge.org/Arguments

0
ответ дан 31 July 2018 в 12:10

Это неудобное и неуклюжее поведение является результатом неразумного выбора во имя каталога «Ubuntu One». К сожалению, для этого не планируется никаких исправлений.

Один из вариантов - использовать Dropbox, который предлагает аналогичные функции.

0
ответ дан 31 July 2018 в 12:10

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

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