Кавычки в Linux

Знаете ли вы, что при работе в командной строке очень важно имена файлов заключать в кавычки? Зачем это нужно и как это делать вы можете узнать, прочитав эту небольшую заметку. Итак, кавычки в Linux!

В обозревателе файлов Nautilus легко создавать файлы и папки, содержащие пробелы в имени. Вы можете копировать и перетаскивать такие объекты без каких-либо проблем. Но когда вы собираетесь обратиться к таким файлам из командной строки, не забывайте заключать их имена в кавычки.

кавычки в Linux

Например, если ваше имя пользователя jenny и у вас есть в вашей домашней папке папка My projects (Мои проекты), к которой вы хотите обратиться из командной строки, вы не можете использовать команду cd в обычном формате:

cd /home/jenny/My Projects

Ubuntu решит, что вы хотите перейти в папку /home/jenny/My, и выведет следующее сообщение об ошибке:

bash: cd: /home/jenny/My: Нет такого файла или каталога

Для того чтобы избежать подобной ситуации, следует ввести следующую строку с кавычками (вы также можете использовать апострофы, если они вам больше
нравятся):

cd "/home/jenny/My Projects"

Применение других команд оболочки Bash с файлами и папками, в именах которых есть пробелы, также требует использования кавычек. Следующий набор
команд иллюстрирует корректный способ обработки пробелов в именах папок и файлов:

mkdir "/home/jenny/My Projects"
cd ~/"My Projects"
ls -al "/home/jenny/My Projects/January"
rm "Backups/Old|Report.doc"

В четвертой строке нет никаких пробелов, но применение кавычек все же необходимо, так как символ |, как и пробел, — обычный символ в среде рабочего стола — считается специальным символом в режиме командной строки. Существует довольно много таких специальных символов, например >, < и ;.

Если вы опустите кавычки, ссылаясь на файлы и папки, содержащие подобные символы, вы получите одно из многочисленных сообщений об ошибке, зависящее от применяемых символов и их местоположения в строке. Хуже того, иногда вы можете не получить такого сообщения, потому что строка может выглядеть как корректная команда, которая выполнится и возможно изменит или даже сотрет данные! А если вы сотрёте данные в Linux, то восстановление данных будет значительно сложнее, чем в Windows.

Как видно во второй строке предыдущего примера, весь путь заключать в кавычки необязательно, а иногда и не следует, если вы хотите, чтобы определенные символы, такие как ~, обрабатывались корректно. В действительности достаточно заключить в кавычки только не алфавитно-цифровые символы.

Таким образом, следующие команды полностью эквивалентны предыдущим четырем:

mkdir /home/jenny/"My Projects"
cd ~/My" "Projects
ls -al /home/jenny/"My Projects"/January
rm Backups/Old"|"Report.doc

Вот так кавычки в Linux помогут вам грамотно работать в командной строке и не совершить непоправимых ошибок!

Оцените статью
Просто Линукс
Добавить комментарий