Пользователи ОС Linux постоянно работают с файлами. Зачастую, их названия состоят просто из букв или цифр. Но бывают ситуации, когда нужно провести различные операции с файлами, названия которых имеют пробелы или специальные символы (дефисы, знаки восклицания, амперсанды и так далее). В таких случаях всем известные правила для работы с файлами не применимы.
В этой статье мы расскажем, как выполнять различные действия над файлами, названия которых содержат специальные символы или пробелы.
Содержание:
- Дефис (-) в названии файла
- Знак решетки (#) в названии файла
- Точка с запятой (;) в названии файла
- Пробел в названии файла
- Другие специальные символы в названии файла
- Знак плюс (+) в названии файла
- Знак доллара ($) в названии файла
- Символ процента (%) в названии файла
- Символ звездочки (*) в названии файла
- Восклицательный знак (!) в названии файла
- Символ «собака» (@) в названии файла
- Знак карет (^) в названии файла
- Амперсанд (&) в названии файла
- Круглые скобки () в названии файла
- Фигурные скобки {} в названии файла
- Знаки < и > в названии файла
- Квадратные скобки [] в названии файла
- Символы равенства (=) и нижнее подчеркивание (_) в названии файла
- Вопросительный знак (?) в названии файла
- Точка (.) в названии файла
- Запятая (,) в названии файла
- Выводы
Дефис (-) в названии файла
Дефисы используются для обозначения параметров или опций различных команд терминала Linux. Например, в команде ls -l
опция -l
отобразит список файлов в каталоге в длинном формате (то есть — с атрибутами).
Если попробовать создать файл, в названии которого есть дефис, то интерпретатор командной строки будет считать, что Вы вводите команду с какой-либо опцией. Зачастую, после этого на экране появится ошибка invalid option. Чтобы ее устранить, нужно указать оболочке не интерпретировать ничего после дефиса в качестве опции. Для этого используются символы --
или ./
. Например, попробуем создать файлы -qwerty.txt
и -qwerty1.txt
двумя способами:
Важно: символы --
пишутся отдельно от названия, а ./
— слитно с ним.
Эти же символы (--
и ./
) применяются и с другими командами, с помощью которых можно проводить различные операции с файлами (сp
, mv
, rm
и другие).
Для примера удалим только что созданные файлы -qwerty.txt
и -qwerty1.txt
с помощью команды rm
:
Важно: эти правила работают также, если в названии есть сразу несколько дефисов и они находятся не только в начале.
Знак решетки (#) в названии файла
В Linux знак хэштега (#
) используется для обозначения комментариев (строк текста, которые игнорируются оболочкой при выполнении команды). Поэтому, если попробовать создать файл с хэштегом в названии, то интерпретатор воспримет его как комментарий и выведет на экран ошибку missing file operand. Чтобы этого не произошло, нужно указать название файла в одинарных кавычках ('filename'
) или написать перед ним ./
. Например:
Важно: эти правила действуют вне зависимости от места расположения знака решетки в названии.
Чтобы удалить или выполнить другие действия с файлами, в названии которых есть решетки, также применяются одинарные кавычки или ./
:
Точка с запятой (;) в названии файла
Знак точки с запятой (;
) используется для разделения нескольких команд в одной строке. Такая конструкция известна как цепочка команд. Например, сначала выведем список всех файлов в текущем каталоге, а затем перейдем в директорию /etc
:
То есть, если попробовать создать файл с точкой с запятой в названии, то интерпретатор воспримет его как команды, которые нужно выполнить друг за другом. Скорее всего, пользователь получит ошибку missing file operand. Для ее устранения нужно поместить название файла в одинарные кавычки (также можно перед ними поставить ./
). Например:
Другие действия с такими файлами выполняются по тому же принципу, что и их создание. К примеру:
Пробел в названии файла
По умолчанию пользователи не могут использовать пробелы в названиях файлов. Однако существуют два способа, которые позволят это сделать:
- Название файла нужно поместить в кавычки.
- Перед каждым пробелом следует поставить обратный слеш (
\
).
Для примера создадим, а потом удалим файлы, в названиях которых есть пробелы, используя каждый из указанных способов:
Другие специальные символы в названии файла
В этом разделе статьи мы кратко пройдемся по другим специальным символам. В случае их использования либо вообще не требуется применять какие-либо правила к названиям файлов, либо их нужно просто выделять одинарными кавычками.
Знак плюс (+) в названии файла
Этот символ имеет особое значение только при определении прав доступа к файлам с командой chmod
. Поэтому, если в названии файла встречается +
, не нужно применять никаких правил для работы с ним:
Знак доллара ($) в названии файла
Этот символ используется при работе с переменными в командной строке. Чтобы интерпретатор Linux не определял название файла как переменную, поместите его в одинарные кавычки:
Символ процента (%) в названии файла
Знак %
применяется в очень ограниченном количестве операций в Linux (зачастую, в скриптах). Поэтому, если файл имеет в названии символ процента, дополнительных действий для работы с ним не требуется:
Символ звездочки (*) в названии файла
Этот символ активно используется в качестве подстановочного знака. Звездочка (*
) соответствует любой последовательности символов (включая их отсутствие). Однако, для создания файла в названии, которого есть этот знак, никаких правил применять не нужно:
Тем не менее, для удаления такого файла его название обязательно нужно поместить название в одинарные кавычки (в противном случае звездочка будет интерпретирована как подстановочный знак):
Читайте также: Как использовать подстановочные знаки в Linux.
Восклицательный знак (!) в названии файла
Восклицательный знак активно применяется для решения огромного количества задач в командной строке Linux. Поэтому, чтобы избежать появления ошибок при работе с файлами, в названиях которых есть !
, используйте одинарные кавычки:
Символ «собака» (@) в названии файла
Так же как и символ процента, знак «собака» применяется в очень ограниченном количестве задач. Поэтому для выполнения каких-либо действий с файлами, в названии которых есть @
, не требуется использовать специальные правила:
Знак карет (^) в названии файла
Если в названии встречается этот символ, то использовать одинарные кавычки не нужно:
Амперсанд (&) в названии файла
Знак амперсанда (&
) используется для запуска команды в фоновом режиме. Это означает, что оболочка не будет ждать завершения ее работы, прежде чем продолжить выполнение других команд. Соответственно, если в названии файла встречается символ &
, то его нужно поместить в одинарные кавычки:
Круглые скобки () в названии файла
В Linux круглые скобки ()
используются для группировки команд или управления процессами, в функциях оболочки и других целях. Следовательно, если в названии файла есть круглые скобочки, то его нужно заключить в одинарные кавычки:
Фигурные скобки {} в названии файла
Фигурные скобки, так же как и круглые, используются для выполнения многих задач в окне терминала. Однако, если название файла содержит {}
, то для работы с ним применять какие-то дополнительные правила не нужно:
Знаки < и > в названии файла
Символы «больше» и «меньше» очень часто используются в регулярных выражениях и операциях перенаправления ввода-вывода. Поэтому, если в названии файла есть хоть один из этих знаков, то следует поместить его в одинарные кавычки:
Квадратные скобки [] в названии файла
Квадратные скобки []
активно применяются в сценариях оболочки, регулярных выражениях и операциях с подстановочными знаками. Однако, если Вы намерены совершить какое-либо действие с файлом, в названии которого есть такие скобки, то никаких специальных правил использовать не нужно:
Символы равенства (=) и нижнего подчеркивания (_) в названии файла
Оба эти знака можно спокойно использовать в названиях файлов. Поэтому, если Вы решитесь выполнить какие-то действия с такими файлами, то применять одинарные кавычки не нужно:
Вопросительный знак (?) в названии файла
В операционной системе Linux символ ?
служит в качестве подстановочного знака. Однако, если он используется в названиях файлов, то никаких специальных действий при работе с ним предпринимать не нужно:
Точка (.) в названии файла
Если точка встречается в самом начале названия файла, то такой файл считается скрытым и по умолчанию не будет виден пользователю. Чтобы работать со скрытым файлом, не нужно дополнительно использовать одинарные кавычки с его названием:
Если точки встречаются в других частях названия файла, то для работы с ним также не требуется применять каких-то дополнительных действий:
Запятая (,) в названии файла
Запятая несет какой-либо смысл для интерпретатора командной строки в очень ограниченном количестве случаев. Поэтому, если она есть в названиях, использовать одинарные кавычки не требуется:
Выводы
В этой статье мы рассказали, как создавать и выполнять различные действия над файлами, в названиях которых есть пробелы или другие специальные символы. Надеемся, что полученные знания помогут Вам стать более опытным пользователем Linux.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.