Одиночные или без кавычек в путях к файлам в оболочках Unix - PullRequest
0 голосов
/ 27 апреля 2018

Я новичок в системах Unix и пытаюсь узнать кое-что с помощью терминала. У меня есть следующий вопрос в моей голове. Если мы можем написать filepath без одинарных кавычек в терминале (например, mv path1 path2), то почему мы иногда используем одинарные кавычки для указания путей. В чем разница между этими двумя?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Это не вопрос операционной системы, а используемой вами оболочки. На самом деле вы можете выбрать, какую оболочку вы хотите использовать в системе Unixoid, если установлено несколько (что обычно имеет место).

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

Без кавычек (одинарных или двойных кавычек) пробельные символы считаются разделителями между словами, слова обычно считаются отдельными аргументами. Таким образом, вы можете указать несколько аргументов для одной команды. Если это , а не , то вы можете использовать символы кавычек для группировки нескольких слов, разделенных пробелами, в один аргумент, например, имя папки, содержащее пробел. Это работает, потому что теперь оболочка знает, что вы хотите, чтобы все, что следует за символом кавычки, рассматривалось как один аргумент до следующего соответствующего символа кавычки (фактически, кроме экранированных ...).

0 голосов
/ 27 апреля 2018

Используется для экранирования пробелов в именах файлов, в противном случае требуется обратная косая черта. Например:

$ rm spaces\ in\ file\ name
$ rm 'spaces in file name'

Если в пути к вашему файлу нет пробелов, возможно, кавычки можно пропустить.

...