Специальные символы и пробелы в названиях файлов в Linux

Специальные символы и пробелы в названиях файлов в Linux

Рубрики:

Linux, Терминал Linux

Метки:

,

Пользователи ОС Linux постоянно работают с файлами. Зачастую, их названия состоят просто из букв или цифр. Но бывают ситуации, когда нужно провести различные операции с файлами, названия которых имеют пробелы или специальные символы (дефисы, знаки восклицания, амперсанды и так далее). В таких случаях всем известные правила для работы с файлами не применимы.

В этой статье мы расскажем, как выполнять различные действия над файлами, названия которых содержат специальные символы или пробелы.

Содержание:

  1. Дефис (-) в названии файла
  2. Знак решетки (#) в названии файла
  3. Точка с запятой (;) в названии файла
  4. Пробел в названии файла
  5. Другие специальные символы в названии файла
    1. Знак плюс (+) в названии файла
    2. Знак доллара ($) в названии файла
    3. Символ процента (%) в названии файла
    4. Символ звездочки (*) в названии файла
    5. Восклицательный знак (!) в названии файла
    6. Символ «собака» (@) в названии файла
    7. Знак карет (^) в названии файла
    8. Амперсанд (&) в названии файла
    9. Круглые скобки () в названии файла
    10. Фигурные скобки {} в названии файла
    11. Знаки < и > в названии файла
    12. Квадратные скобки [] в названии файла
    13. Символы равенства (=) и нижнее подчеркивание (_) в названии файла
    14. Вопросительный знак (?) в названии файла
    15. Точка (.) в названии файла
    16. Запятая (,) в названии файла
  6. Выводы

Дефис (-) в названии файла

Дефисы используются для обозначения параметров или опций различных команд терминала Linux. Например, в команде ls -l опция -l отобразит список файлов в каталоге в длинном формате (то есть — с атрибутами).

Если попробовать создать файл, в названии которого есть дефис, то интерпретатор командной строки будет считать, что Вы вводите команду с какой-либо опцией. Зачастую, после этого на экране появится ошибка invalid option. Чтобы ее устранить, нужно указать оболочке не интерпретировать ничего после дефиса в качестве опции. Для этого используются символы -- или ./. Например, попробуем создать файлы -qwerty.txt и -qwerty1.txt двумя способами:

 

dashed create

Важно: символы -- пишутся отдельно от названия, а ./ — слитно с ним.

Эти же символы (-- и ./) применяются и с другими командами, с помощью которых можно проводить различные операции с файлами (сp, mv, rm и другие).

Для примера удалим только что созданные файлы -qwerty.txt и -qwerty1.txt с помощью команды rm:

 

dashed with commands

Важно: эти правила работают также, если в названии есть сразу несколько дефисов и они находятся не только в начале.

Знак решетки (#) в названии файла

В Linux знак хэштега (#) используется для обозначения комментариев (строк текста, которые игнорируются оболочкой при выполнении команды). Поэтому, если попробовать создать файл с хэштегом в названии, то интерпретатор воспримет его как комментарий и выведет на экран ошибку missing file operand. Чтобы этого не произошло, нужно указать название файла в одинарных кавычках ('filename') или написать перед ним ./. Например:

 

hashed create

Важно: эти правила действуют вне зависимости от места расположения знака решетки в названии.

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

 

hashed with commands

Точка с запятой (;) в названии файла

Знак точки с запятой (;) используется для разделения нескольких команд в одной строке. Такая конструкция известна как цепочка команд. Например, сначала выведем список всех файлов в текущем каталоге, а затем перейдем в директорию /etc:

 

То есть, если попробовать создать файл с точкой с запятой в названии, то интерпретатор воспримет его как команды, которые нужно выполнить друг за другом. Скорее всего, пользователь получит ошибку missing file operand. Для ее устранения нужно поместить название файла в одинарные кавычки (также можно перед ними поставить ./). Например:

 

semicolon create

Другие действия с такими файлами выполняются по тому же принципу, что и их создание. К примеру:

 

semicolon with commands

Пробел в названии файла

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

  1. Название файла нужно поместить в кавычки.
  2. Перед каждым пробелом следует поставить обратный слеш (\).

Для примера создадим, а потом удалим файлы, в названиях которых есть пробелы, используя каждый из указанных способов:

 

spaces

Другие специальные символы в названии файла

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

Знак плюс (+) в названии файла

Этот символ имеет особое значение только при определении прав доступа к файлам с командой chmod. Поэтому, если в названии файла встречается +, не нужно применять никаких правил для работы с ним:

 

plus sign

Знак доллара ($) в названии файла

Этот символ используется при работе с переменными в командной строке. Чтобы интерпретатор Linux не определял название файла как переменную, поместите его в одинарные кавычки:

 

dollar sign

Символ процента (%) в названии файла

Знак % применяется в очень ограниченном количестве операций в Linux (зачастую, в скриптах). Поэтому, если файл имеет в названии символ процента, дополнительных действий для работы с ним не требуется:

 

percent sign

Символ звездочки (*) в названии файла

Этот символ активно используется в качестве подстановочного знака. Звездочка (*) соответствует любой последовательности символов (включая их отсутствие). Однако, для создания файла в названии, которого есть этот знак, никаких правил применять не нужно:

 

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

 

asterisk

Читайте также: Как использовать подстановочные знаки в Linux.

Восклицательный знак (!) в названии файла

Восклицательный знак активно применяется для решения огромного количества задач в командной строке Linux. Поэтому, чтобы избежать появления ошибок при работе с файлами, в названиях которых есть !, используйте одинарные кавычки:

 

exclamation

Символ «собака» (@) в названии файла

Так же как и символ процента, знак «собака» применяется в очень ограниченном количестве задач. Поэтому для выполнения каких-либо действий с файлами, в названии которых есть  @, не требуется использовать специальные правила:

 

at sign

Знак карет (^) в названии файла

Если в названии встречается этот символ, то использовать одинарные кавычки не нужно:

 

caret

Амперсанд (&) в названии файла

Знак амперсанда (&) используется для запуска команды в фоновом режиме. Это означает, что оболочка не будет ждать завершения ее работы, прежде чем продолжить выполнение других команд. Соответственно, если в названии файла встречается символ &, то его нужно поместить в одинарные кавычки:

 

ampersand

Круглые скобки () в названии файла

В Linux круглые скобки () используются для группировки команд или управления процессами, в функциях оболочки и других целях. Следовательно, если в названии файла есть круглые скобочки, то его нужно заключить в одинарные кавычки:

 

() sign

Фигурные скобки {} в названии файла

Фигурные скобки, так же как и круглые, используются для выполнения многих задач в окне терминала. Однако, если название файла содержит {}, то для работы с ним применять какие-то дополнительные правила не нужно:

 

{} sign

Знаки < и > в названии файла

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

 

chevrons

Квадратные скобки [] в названии файла

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

 

square brackets

Символы равенства (=) и нижнего подчеркивания (_) в названии файла

Оба эти знака можно спокойно использовать в названиях файлов. Поэтому, если Вы решитесь выполнить какие-то действия с такими файлами, то применять одинарные кавычки не нужно:

 

=_ sign

Вопросительный знак (?) в названии файла

В операционной системе Linux символ ? служит в качестве подстановочного знака. Однако, если он используется в названиях файлов, то никаких специальных действий при работе с ним предпринимать не нужно:

 

question sign

Точка (.) в названии файла

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

 

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

 

dots

Запятая (,) в названии файла

Запятая несет какой-либо смысл для интерпретатора командной строки в очень ограниченном количестве случаев. Поэтому, если она есть в названиях, использовать одинарные кавычки не требуется:

 

comma

Выводы

В этой статье мы рассказали, как создавать и выполнять различные действия над файлами, в названиях которых есть пробелы или другие специальные символы. Надеемся, что полученные знания помогут Вам стать более опытным пользователем Linux.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Терминал Linux

Метки:

,

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню