Расширенные регулярные выражения
Команду Grep можно также использовать с расширенным языком регулярных выражений при помощи флага «-E» или же вызывая команду «egrep» вместо «grep».
Эти команды открывают возможности «расширенных регулярных выражений». Расширенные регулярные выражения включают в себя все основные метасимволы, а также дополнительные метасимволы для выражения более сложных совпадений.
Группирование
Одна из простейших и полезнейших возможностей, которые открывают расширенные регулярные выражения, – это возможность группировать выражения и использовать их как единое целое.
Для группирования выражений используются круглые скобки. При необходимости использовать круглые скобки вне расширенных регулярных выражений, их можно «избежать» при помощи обратной косой
Приведенные выше выражения являются эквивалентами.
Чередование
Подобно тому, как квадратные скобки задают различные возможные варианты совпадения одного символа, чередование позволяет указать альтернативные совпадения для строк символов или наборов выражений.
Для обозначения чередования используется символ вертикальной черты «|». Чередование часто применяется в группировании для того, чтобы указать, что один из двух или более возможных вариантов должен рассматриваться как совпадение.
В данном примере нужно найти «GPL» или «General Public License»:
Чередование можно использовать для выбора между двумя и более вариантами; для этого нужно ввести остальные варианты в группу отбора, отделяя каждый при помощи символа вертикальной черты «|».
Кванторы
В расширенных регулярных выражениях существуют метасимволы, указывающие частоту повторения символа, подобно тому, как метасимвол «*» указывает на совпадения предыдущего символа или строки символов 0 или более раз.
Чтобы указать совпадение символа 0 или больше раз, можно использовать символ «?». Он сделает предыдущий символ или ряд символов, по сути, необязательными.
В данном примере при помощи внесения последовательности «copy» в факультативную группу выведены совпадения «copyright» и «right»:
Символ «+» ищет совпадения выражений 1 или больше раз. Он работает почти как символ «*», но при использовании «+» выражение должно совпасть хотя бы 1 раз.
Приведенное ниже выражение ищет совпадения строки «free» плюс 1 или больше символов, которые не являются пробельными:
Количество повторений совпадений
При необходимости указать количество повторения совпадений можно использовать фигурные скобки («{ }»). Эти символы используются для указания точного количества, диапазона, а также верхнего и нижнего предела количества совпадений выражения.
При необходимости найти все строки, что содержат сочетание трех гласных, можно использовать следующее выражение:
Переименование командой rename
Команда rename служит для массового (пакетного) переименования файлов. Она позволяет выполнять замену определенных символов или частей имени файла и использованием Perl-регулярных выражений.
Если вдруг в вашем дистрибутиве нет команды rename, то ее можно установить, выполнив (выберите соответствующую команду для вашего дистрибутива):
Синтаксис команды rename:
rename опции ’s/старое_имя/новое_имя’ файлы
старое_имя — регулярное выражение или часть имени файла, которое нужно заменить на новое_имя.новое_имя — задает результирующее имя файла (может быть регулярным выражением).
Основные опции:-f — перезаписывать существующие файлы.-n — вывести список файлов, которые будут переименованы и их новые имена, но не выполнять переименование.-v — вывести список обработанных файлов.
Проще всего понять, как пользоваться данной командой, на примерах.
Изменение расширения файлов
Массово изменить расширение .html на .php у всех html-файлов.
По умолчанию rename не перезаписывает существующие файлы. Чтобы существующие файлы перезаписывались, используется опция -f:
Показать, что именно будет переименовано, но не переименовывать
Чтобы избежать ошибок при переименовании файлов, особенно при использовании сложных регулярных выражений, можно сначала вывести список того, что будет переименовано, но не запускать само переименование. Для этого служит опция -n.
Например, мы хотим изменить расширение у файлов с .jpeg на .jpg. Используем опцию -n, чтобы просто вывести какие файлы будут переименованы:
Полное описание команд mv и rename можно получить, выполнив в терминале команды:
Hostname в Linux
Устройства взаимодействуют друг с другом по сети, используя IP-адреса. IP-адрес, назначенный конкретному устройству, может меняться в зависимости от ситуации
Поэтому важно использовать запоминающееся имя хоста, которое не меняется в зависимости от ситуации
Для изменения имени хоста в Linux можно использовать несколько методов, и эти методы можно разделить на две категории: методы интерфейса командной строки (CLI) и методы графического интерфейса пользователя (GUI).
Методы CLI
Чтобы изменить имя хоста устройства в Linux, мы рекомендуем использовать инструменты командной строки. Эти методы универсальны и работают практически в любом дистрибутиве Linux. Кроме того, нет необходимости устанавливать какие-либо дополнительные пакеты.
Проверить имя хоста
Сначала проверьте имя хоста текущей системы следующим образом.
$ hostname
$ hostnamectl
Изменить имя хоста с помощью hostname
Команду можно использовать для изменения имени хоста системы, используя следующую структуру команд.
$ sudo hostname
Наконец, проверьте изменение.
$ hostname
Обратите внимание, что с помощью этого метода имя хоста изменяется только временно. Если система будет перезагружена, она вернется к исходному имени хоста
Этот метод следует использовать только в том случае, если вы не собираетесь делать постоянное изменение имени хоста.
Измените имя хоста с помощью hostnamectl
Инструмент hostnamectl контролирует имя хоста системы. Этот инструмент может выполнять широкий спектр действий; например, его можно использовать для отображения текущего имени хоста, для изменения имени хоста, для настройки описания среды и для управления системной строкой LOCATION.
Чтобы использовать hostnamectl для изменения имени хоста, выполните следующую команду.
$ sudo hostnamectl set-hostname
Затем проверьте изменение.
$ hostname
Затем нам нужно вручную обновить файл хоста. Для этого откройте файл в текстовом редакторе.
$ sudo vim /etc/hosts
Измените старое имя хоста на новое имя хоста.
$ 127.0.1.1 localhost $ 127.0.1.1
Если вы используете более старый дистрибутив Linux, то после внесения изменений вам может потребоваться выполнить следующую команду.
$ /etc/init.d/hostname restart
Изменить имя хоста (для системы инициализации)
Выделенный файл содержит имя хоста системы. Мы можем вручную обновить файл, чтобы изменить имя хоста. Для этого откройте файл в текстовом редакторе.
$ sudo vim /etc/hostname
На изображении ниже показано старое имя хоста.
Отредактируйте содержимое, чтобы обновить имя хоста.
Сохраните файл и закройте редактор. Чтобы изменения вступили в силу, перезагрузите систему. После перезагрузки системы убедитесь, что действие выполнено успешно, как показано ниже.
$ hostname
GUI методы
В этом разделе мы будем использовать GNOME для изменения имени хоста устройства. Однако вы можете использовать YaST для изменения имени хоста в openSUSE.
Изменить имя хоста в GNOME
GNOME — мощная среда рабочего стола. Если вы используете GNOME, вы можете изменить имя хоста без выполнения каких-либо команд, открыв приложение «Настройки».
На левой панели прокрутите вниз и выберите «О программе». В этом примере имя хоста системы находится в поле «Имя устройства».
Щелкните «Имя устройства», чтобы открыть запрос на изменение имени хоста.
Введите новое имя хоста и нажмите «Переименовать», чтобы сохранить изменения.
How to Rename Files and Directories in Linux
22 Июня 2020
|
Терминал
Переименование файлов и каталогов является одной из самых основных задач, которые вам часто приходится выполнять в системе Linux. Вы можете переименовывать файлы, используя файловый менеджер с графическим интерфейсом или через терминал командной строки.
Переименовать один файл легко, но переименование нескольких файлов одновременно может быть проблемой, особенно для пользователей, которые являются новичками в Linux.
Переименование файлов с помощью команды
Команда ( не хватает хода) используется для переименования или перемещения файлов из одного места в другое. Синтаксис команды следующий:
Может быть один или несколько файлов или каталогов и может быть один файл или каталог.
- Если вы указываете несколько файлов как , должен быть каталог. В этом случае файлы перемещаются в целевой каталог.
- Если вы указываете один файл как , а целью является существующий каталог, то файл перемещается в указанный каталог.
- Чтобы переименовать файл, вам нужно указать один файл как и один файл как цель.
Например, чтобы переименовать файл так, как вы запустите:
Переименование нескольких файлов с помощью команды
Команда может переименовывать только один файл за раз, но ее можно использовать вместе с другими командами, такими как или внутри bash или циклов, для переименования нескольких файлов.
В следующем примере показано, как использовать цикл Bash for для переименования всех файлов в текущем каталоге, изменив расширение на .
Давайте проанализируем код построчно:
- Первая строка создает цикл и перебирает список всех файлов, окантованных .
- Вторая строка применяется к каждому элементу списка и перемещает файл в новый, заменяя его на . Часть использует расширение параметра оболочки, чтобы удалить часть из имени файла.
- указывает на конец сегмента цикла.
Вот пример использования в сочетании с для достижения того же, что и выше:
Команда передает все файлы, оканчивающиеся в текущем каталоге, по одному, используя опцию. Строка — это имя файла, обрабатываемого в данный момент.
Как видно из приведенных выше примеров, переименование нескольких файлов с помощью команды — непростая задача, поскольку требует хорошего знания сценариев Bash.
Переименование файлов с помощью команды
Команда используется для переименования нескольких файлов. Эта команда более сложна, чем она требует базовых знаний о регулярных выражениях.
Существует две версии команды с разным синтаксисом. В этом уроке мы будем использовать версию команды Perl . Если у вас не установлена эта версия в вашей системе, вы можете легко установить ее, используя менеджер пакетов вашего дистрибутива.
-
Установить на Ubuntu и Debian
-
Установить на CentOS и Fedora
-
Установить на Arch Linux
Синтаксис команды следующий:
Команда переименует в соответствии с указанным регулярным выражением. Вы можете прочитать больше о регулярных выражениях perl .
Следующий пример изменит все файлы с расширением на :
Вы можете использовать опцию для печати имен файлов, которые будут переименованы, без переименования их.
Вывод будет выглядеть примерно так:
По умолчанию команда не перезаписывает существующие файлы. Передайте опцию, чтобы разрешить перезаписывать существующие файлы:
Ниже приведены еще несколько распространенных примеров использования команды:
-
Заменить пробелы в именах файлов подчеркиванием
-
Преобразование имен файлов в нижний регистр
-
Преобразовать имена файлов в верхний регистр
Конечно, есть другие команды для переименования файлов в Linux, такие как . Новые пользователи Linux, которых пугает командная строка, могут использовать инструменты пакетного переименования GUI, такие как Métamorphose .
Создание текстовых файлов в терминале Linux.
Текстовый файл в терминале Linux можно создать тремя способами.
1. С помощью команды touch:
Вводим команду touch, затем путь и название нового файла.
Например, создадим текстовый файл в текущей директории с именем file.txt:
2. С помощью перенаправления стандартного потока вывода любой команды.
О перенаправлении стандартных потоках вывода в файл более подробно будет рассказано в одной из следующих статей о терминале Linux.
Создать файл можно также перенаправлением вывода любой команды в файл.
В общем виде команда будет следующей:
То есть, команда с выводом, затем галочка вправо >, означающая перенаправление вывода команды в файл и путь к файлу.
Например, перенаправим вывод справки команды ls в файл, который будет создан (а если такой файл есть, то он будет полностью перезаписан):
Но это мы создали не пустой файл, а если хотим создать пустой, то воспользуемся командой echo c переданной ей пустой строкой (две одинарных ковычки) и перенаправим это в файл:
3. С помощью любого текстового редактора, консольного или с графическим интерфейсом.
Передаем команду запуска любого текстового редактора и путь к файлу.
Самый простой консольный текстовый редактор это nano:
Или с помощью текстового редактора с графическим интерфейсом, который установлен в Gnome по умолчанию:
Про манипуляции с текстом более подробно в одной из следующих статей о терминале Linux.
Основные команды для работы с файловой системой Linux
Существует всего несколько команд, которые позволяют гибко управлять файловой системой. На этих командах основаны все файловые менеджеры из комплектов всевозможных графических оболочек для Linux- и UNIX-систем. Набор этих команд включает:
- cd – перемещение по дереву каталогов файловой системы. В качестве параметра указывается пункт назначения — какой-либо каталог по относительному или абсолютному пути;
- ls – просмотр содержимого каталога. По-умолчанию выводит содержимое текущего (активного) каталога, если целевой каталог не задан явно через параметр;
- cp – копирование файлов и каталогов. Первым параметром является источник, вторым — конечный объект-копия;
- rm – удаление файлов. Может использоваться и для удаления каталогов;
- rmdir – удаление каталогов;
- mv – перемещение или переименование файлов или каталогов. В качестве параметров указываются сначала источник, затем конечный объект. Для переименования абсолютные (или относительные) пути для источника и целевого объекта должны совпадать;
- pwd – определение текущего (активного) каталога.
Итого команд меньше десятка, однако это внушительный арсенал.
Переименование файла в Linux с помощью команды «rename»
Linux «rename» file — это очередная команда, предназначенная для смены названия сразу нескольких файлов. С её помощью пользователь также сможет сменить только часть имени элемента. Команда «mv» не предоставляет таких возможностей.
«Rename» имеет несколько немаловажных опций, которые пригодятся многим пользователям ПК:
- «-v». Как и в предыдущем случае, выводит сведения об обработанных ранее файлах;
- «-n». Позволяет предварительно ознакомиться с изменениями, которые пользователь хочет внести, чтобы продемонстрировать их в действии;
- «-f». Переименовывает сразу все объекты дистрибутива принудительно.
Принцип изменения названия файлов, их переименовывания на основе команды «rename» разделяют на несколько этапов, каждый из которых заслуживает подробного описания для полного понимания:
- Запустить терминал по рассмотренной в предыдущем разделе схеме.
- В строку «User@PC» вписать фразу «rename -v s/старый/новый/». Содержимое слэшев необходимо заполнить действующими названиями файлов, которые пользователь компьютера решил поменять.
- Нажать «Enter» и дождаться окончания процедуры. После проведения представленных выше манипуляций перезапускать устройство не обязательно. Достаточно закрыть терминал операционки и убедиться в принятии изменений.
Процесс смены имени директории в терминале OC Linux с использованием команды «rename»
Обратите внимание! С использованием команды «rename» у юзера ПК на Линуксе появляется возможность не только переименовывать файлы, но и менять их расширение