Создание текстовых файлов в терминале Linux.
Текстовый файл в терминале Linux можно создать тремя способами.
1. С помощью команды touch:
Вводим команду touch, затем путь и название нового файла.
Например, создадим текстовый файл в текущей директории с именем file.txt:
2. С помощью перенаправления стандартного потока вывода любой команды.
О перенаправлении стандартных потоках вывода в файл более подробно будет рассказано в одной из следующих статей о терминале Linux.
Создать файл можно также перенаправлением вывода любой команды в файл.
В общем виде команда будет следующей:
То есть, команда с выводом, затем галочка вправо >, означающая перенаправление вывода команды в файл и путь к файлу.
Например, перенаправим вывод справки команды ls в файл, который будет создан (а если такой файл есть, то он будет полностью перезаписан):
Но это мы создали не пустой файл, а если хотим создать пустой, то воспользуемся командой echo c переданной ей пустой строкой (две одинарных ковычки) и перенаправим это в файл:
3. С помощью любого текстового редактора, консольного или с графическим интерфейсом.
Передаем команду запуска любого текстового редактора и путь к файлу.
Самый простой консольный текстовый редактор это nano:
Или с помощью текстового редактора с графическим интерфейсом, который установлен в Gnome по умолчанию:
Про манипуляции с текстом более подробно в одной из следующих статей о терминале Linux.
pyRenamer — легкий выход
Наконец, решение, которого ждали все пользователи анти-консолей: настольное приложение, в котором все можно сделать с помощью простой щелчок мышью. pyRenamer — это безумно мощный инструмент для переименования файлов, написанный на Python. На данный момент официальный веб-сайт, похоже, не работает, но пользователи Ubuntu и его производных все еще могут установить pyRenamer из репозиториев, используя команду:
sudo apt -get install pyrenamer
Кроме того, вы можете скомпилировать его, используя этот разветвленный код из GitHub.
Интерфейс состоит из четырех частей:
- просмотрщик файлов в виде дерева для выбора файлов и папок.
- центральная панель предварительного просмотра, показывающая имена файлов до и после переименования.
- область управления с вкладками для выбора критерии переименования
- боковая панель параметров
pyRenamer может удалять акценты и повторяющиеся символы из имен файлов, заменять любую строку текста другой, изменять имена файлов на верхний регистр, нижний регистр или регистр предложений, а также автоматически вставлять или удалять пробелы и подчеркивания. Новичкам это понравится, потому что все это можно просто выбрать в области вкладок, просмотреть в основной области и подтвердить, нажав кнопку «Переименовать». Если они хотят поэкспериментировать с шаблонами, pyRenamer предоставляет шпаргалку, чтобы упростить задачу.
Опытные пользователи оценят возможность pyRenamer переименовывать мультимедийные файлы, считывая их метаданные. Также можно вручную переименовать один файл, когда в пакетном переименовании нет необходимости.
По сути, pyRenamer обертывает функциональность и в удобный графический интерфейс. Это отличный выбор для тех, кто не уверен в своих навыках работы с интерфейсом командной строки.
Если вы хотите и дальше возиться с вашей системой Linux, возможно, вам стоит обратить внимание на наше руководство по кастингу Android. экран в линукс? Или, может быть, мы можем показать вам, как вместо этого сбросить пароль root в Linux
Полезна ли эта статья?
- Твитнуть
Привет,
Спасибо за советы, особенно за переход от нижнего регистра к прописному.
Я знаю метаморфозы, лично я использую krename для массового переименования.
Только мои 2cents.
Очень полезная статья!
Почему не упоминается «mmv» — утилита командной строки «массовое переименование файлов и многое другое»?
метаморфоза больше не поддерживается, эффективно обесценивается.
Небольшая опечатка в примере — переименовать ‘s.jpeg/.jpg/’ * следует читать переименовать ‘s/.jpeg/.jpg/’ *
`rename (option) ‘s/oldname/newname’ file1.ext file24.ext` должно быть` rename (option) ‘s/oldname/newname/’ file1.ext file24 .ext` (вы пропустили косую черту в конце)
Меня немного смущает команда переименования. Я могу заставить его работать, только если использую подстановочный знак. Когда я пытаюсь использовать: rename ‘s/oldname/newname/’ file1.txt file2.txt, он ничего не делает. то же самое, если я просто сделаю: переименовать s/oldname/newname/’
Единственный способ заставить его работать — это переименовать s/oldname/newname/*
Я не пытаюсь жаловаться. Он по-прежнему делает то, что мне нужно. Я просто не понимаю, почему это не работает без подстановочного знака.
Спасибо за этот пост. Хотя это было очень полезно для изменения расширения имени файла для нескольких файлов, я столкнулся с некоторыми проблемами.
Используя следующее:
rename –version — «переименовать из util-linux 2.23.2»
Единственный формат, который работал для переименования файлов, был следующий: rename ‘OldFileName’ ‘NewFileName’ *
Пример: rename -v ‘.html’ ‘.cshtml’ *
Надеюсь, это будет полезно для кого-то еще, потому что с первого взгляда не ясно, почему команда не работает.
I ‘ Хочу предложить pyrenamer тем, кто ищет такую утилиту в Linux. Это просто и делает то, что вам нужно. Я использую его с L. Mint.
Ограничить изменения для определенных частей имен файлов
Давайте использовать для просмотра файлов, в имени файла которых содержится строка «param». Затем мы будем использовать , чтобы заменить эту строку строкой «параметр». Мы будем использовать еще раз, чтобы увидеть влияние, которое команда оказала на эти файлы.
ls * param *
переименуйте 's/param/parameter' * .c
ls * param *
Найдено четыре файла с именем «param» в имени файла. param.c, param_one.c и param_two.c имеют «param» в начале начала своего имени. third_param.c имеет «param» в end своего имени, непосредственно перед расширением.
Команда будет искать «param» везде в имени файла и заменять его «параметром» во всех случаях.
Второе использование команды показывает нам, что именно это и произошло. Независимо от того, был ли «param» в начале или в конце имени файла, он был заменен «параметром».
Мы можем использовать метасимволы Perl для уточнения поведения среднего выражения. Метасимволы – это символы, которые представляют позиции или последовательности символов. Например, означает «начало строки», означает «конец строки», а означает любой отдельный символ (кроме от символа новой строки).
Мы собираемся использовать метасимвол начала строки (), чтобы ограничить наш поиск началом имен файлов.
ls * param * .c
переименовать 's/^ параметр/значение /' * .c
ls * param * .c
ls value * .c
Перечислены файлы, которые мы переименовали ранее, и мы можем видеть строку «параметр» в начале трех имен файлов и в конце одного из имен файлов.
Наша команда использует метасимвол начала строки ) перед поисковым термином «параметр». Это говорит только о поисковом термине быть найденным, если оно находится в начале имени файла. Строка поиска «параметр» будет игнорироваться, если она находится где-либо еще в имени файла.
Проверяя , мы видим, что имя файла с «параметром» в конце имени файла не было изменено, но три имени файла с «параметром» в начало в их именах строка поиска заменена заменой термина «значение».
Сила заключается во власти Perl. Вся мощь Perl в вашем распоряжении.
Использование команды «переименовать»
Эта команда немного более продвинутая, чем mv, потому что для этого требуется знание регулярных выражений или хотя бы базовое знакомство с ними. Это может показаться пугающим, но пока не отказывайтесь от — его можно использовать для простого пакетного переименования, просто следуя инструкциям, подобным этому.
Синтаксис выглядит следующим образом:
rename (option) 's/oldname/newname/' file1.ext file24.ext
Буква «s» означает «заменить», и это основная часть регулярного выражения. Одинарные кавычки вокруг него обязательны. Доступные варианты:
- (подробный: выводит список переименованных файлов вместе с их новыми именами)
- («без действия»: тестовый режим или моделирование, в которых отображаются только файлы, которые будут изменены, не касаясь их)
- (принудительная перезапись исходных файлов)
Команда также принимает подстановочные знаки для переименования нескольких файлов одного типа и работает с расширениями файлов. Например, это изменит все файлы с расширением .jpeg на .jpg:
переименовать 's/.jpeg/.jpg/' *
Подстановочный знак (*) означает, что будут затронуты все файлы в папке.
Регулярное выражение также имеет свои собственные параметры ( модификаторы): «g» (глобальный; влияет на все вхождения выражения) и «i» (выполняет подстановку без учета регистра). Они пишутся в конце выражения непосредственно перед закрывающей одинарной кавычкой и могут быть объединены:
rename -n 's/DSC/photo/gi '* .jpg
Это применимо ко всем файлам .jpg, содержащим «DSC», «dSC» и «dsc» — измените эту часть имени файла. на «фото». Однако из-за опции «-n» команда фактически не переименовывала файлы, а просто печатала их в окне консоли.
Подстановка — не единственное, что может делать это регулярное выражение. . Есть также перевод, отмеченный буквой «y», который может преобразовывать имена файлов на более сложном уровне. Чаще всего используется для изменения регистра имени файла:
переименовать 'y/az/AZ/' * .jpg
Это изменит имена всех файлов .jpg с нижнего на верхний регистр. Чтобы сделать это наоборот, просто поменяйте местами «старое имя» и «новое имя» в регулярном выражении.
Используя
Связано : как исправить ошибку «Нет места на устройстве» в Linux
Команда ls linux
Как обычно, в таких статьях сначала нам нужно понять синтаксис команды, чтобы вы знали как правильно ее использовать. На самом деле, синтаксис очень прост, вы набираете саму команду, а после нее путь к папке, содержимое которой хотите посмотреть. Если вы запустите команду без пути, то она выдаст содержимое текущего каталога:
$ ls опции /путь/к/папке
Опции команды указывают как именно и в каком виде нужно выводить информацию на экран, а путь, это та папка, которую нужно отобразить. Рассмотрим основные опции утилиты:
- — a — отображать все файлы, включая скрытые, это те, перед именем которых стоит точка;
- — A — не отображать ссылку на текущую папку и корневую папку . и …;
- — author — выводить создателя файла в режиме подробного списка;
- — b — выводить Escape последовательности вместо непечатаемых символов;
- — block-size — выводить размер каталога или файла в определенной единице измерения, например, мегабайтах, гигабайтах или килобайтах;
- — B — не выводить резервные копии, их имена начинаются с ~;
- — c — сортировать файлы по времени модификации или создания, сначала будут выведены новые файлы;
- — C — выводить колонками;
- — color — включить цветной режим вывода, автоматически активирована во многих дистрибутивах;
- — d — выводить только директории, без их содержимого, полезно при рекурсивном выводе;
- — D — использовать режим вывода, совместимый с Emacs;
- — f — не сортировать;
- — F — показывать тип объекта, к каждому объекту будет добавлен один из специализированных символов */=>@|;
- — full-time — показывать подробную информацию, плюс вся информация о времени в формате ISO;
- — g — показывать подробную информацию, но кроме владельца файла;
- — group-directories-first — сначала отображать директории, а уже потом файлы;
- — G — не выводить имена групп;
- -h — выводить размеры папок в удобном для чтения формате;
- — H — открывать символические ссылки при рекурсивном использовании;
- — hide — не отображать файлы, которые начинаются с указанного символа;
- -i — отображать номер индекса inode, в которой хранится этот файл;
- — l — выводить подробный список, в котором будет отображаться владелец, группа, дата создания, размер и другие параметры;
- — L — для символических ссылок отображать информацию о файле, на который они ссылаются;
- — m — разделять элементы списка запятой;
- — n — выводить UID и GID вместо имени и группы пользователя;
- — N — выводить имена как есть, не обрабатывать контролирующие последовательности;
- — Q — брать имена папок и файлов в кавычки;
- — r — обратный порядок сортировки;
- — R — рекурсивно отображать содержимое поддиректорий;
- — s — выводить размер файла в блоках;
- — S — сортировать по размеру, сначала большие;
- — t — сортировать по времени последней модификации;
- -u — сортировать по времени последнего доступа;
- — U — не сортировать;
- — X — сортировать по алфавиту;
- — Z — отображать информацию о расширениях SELinux;
- — 1 — отображать один файл на одну строку.
Это были все основные параметры команды ls, которые нам может когда-либо понадобиться использовать. Их очень много, но на деле будут нужны только некоторые из них, вы их быстро запомните, а все остальные сможете всегда найти в этой статье или на странице справки man ls. А теперь давайте рассмотрим несколько примеров использования команды ls linux.
Резервные копии
Опции:
-
— создание резервных копий существующих файлов, используя способ контроля версий. Если КОНТРОЛЬ опущен, ведёт себя так же, как .
-
— похож на , но не использует способ контроля версий. Вместо этого используются параметры, указанные в переменной окружения VERSION_CONTROL.
-
, — указывает суффикс имени файла, который будет использоваться для всех резервных копий. Значением по умолчанию является тильда (~).
При использовании опции или , mv переименовывает целевой файл, если он существует, добавив суффикс к его имени. Тем самым сохраняется копия исходного файла, а не его перезаписанный вариант.
Существует два типа резервных копий — простые и нумерованные:
-
Простые резервные копии удаляют существующий файл резервной копии. Сохраняется только одна копия. Суффиксом по умолчанию для простых резервных копий является тильда (~). Например, файл plain.txt будет сохранён как plain.txt~. Можно изменить этот суффикс с помощью опции или установить переменную окружения SIMPLE_BACKUP_SUFFIX.
-
Нумерованные резервные копии сохраняют существующие файлы резервных копий, создавая дополнительные резервные копии с возрастающим номером в имени файла. Резервные файлы не удаляются. Суффикс для нумерованных резервных копий: , где n — целое число. Например, файл plain.txt будет сохранён в виде файла plain.txt.~1~, затем plain.txt.~2~ и т. д.
Доступны дополнительные правила для создания резервных копий с помощью контроля версий. Способ контроля версий устанавливается опцией или переменной окружения VERSION_CONTROL. Значения:
- , — никогда не создавать резервных копий, даже если указан ключ .
- , — создавать нумерованные резервные копии.
- , — если существуют нумерованные копии, то создавать нумерованные (numbered) иначе создавать простые (simple).
- , — всегда создавать простые резервные копии.
Примеры:
1. — если plain_2.txt существует, он будет переименован в plain_2.txt~.
2. — если plain_2.txt существует, он будет переименован в plain_2.txt.bak.
3. — если plain_2.txt существует, он будет переименован в plain_2.txt.~1~. Если plain_2.txt.~1~ существует, он будет переименован в plain_2.txt.~2~ и т. д.
4. — то же, что и в предыдущем примере. Переменная окружения определяется только для этой команды.
5. — при экспорте переменной окружения VERSION_CONTROL все команды для текущего сеанса будут использовать нумерованные резервные копии.
6. — даже если переменная VERSION_CONTROL установлена, резервные копии не создаются, потому что не было указано. Если файл plain_2.txt существует, он перезаписывается.
Редактор
F4 (в редакторе) — поиск с заменой
F6 (в редакторе) — поиск с помощью регулярного выражения
Shift-Del (в редакторе) — удалить блок (и положить его в clipboard)
Shift-Ins (в редакторе) — вставить блок из буфера (работает даже в другой консоли!!!) Можно редактировать два и более файлов на разных консолях и гонять блоки между ними.
Shift+F3 — Начать выделение блока текста. Повторное нажатие F3 закончит выделение
Shift+F5 — Вставка текста из внутреннего буфера обмена mc (прочитать внешний файл)
Meta+i — Переключение режима «Автовыравнивание возвратом каретки», удобно при вставке отформатированного текста из буфера обмена
Meta+l — Переход к строке по её номеру
Meta+q — Вставка литерала (непечатного символа).См. таблицу ниже
Meta+t — Сортировка строк выделенного текста
Meta+u — Выполнить внешнюю команду и вставить в позицию под курсором её вывод
Ctrl+f — Занести выделенный фрагмент во внутренний буфер обмена mc (записать во внешний файл)
Ctrl+k — Удалить часть строки до конца строки
Ctrl+n — Создать новый файл
Ctrl+s — Включить или выключить подсветку синтаксиса
Ctrl+t — Выбрать кодировку текста
Ctrl+u — Отменить действия
Ctrl+x — Перейти в конец следующего
Ctrl+y — Удалить строку
Ctrl+z — Перейти на начало предыдущего слова
Meta+Enter — Диалог перехода к определению функции
Meta+- — Возврат после перехода к определению функции
Meta++ — Переход вперед к определению функции
Meta+n — Включение/отключение отображения номеров строк
tab Отодвигает вправо выделенный текст, если выключена опция «Постоянные блоки»
Meta-tab Отодвигает влево выделенный текст, если выключена опция «Постоянные блоки»
Shift+Стрелки Выделение текста
Meta+Стрелки Выделение вертикального блока
Meta+Shift+- Переключение режима отображения табуляций и пробелов
Meta+Shift++ Переключение режима «Автовыравнивание возвратом каретки»
Теги: bash,linux,mc
Métamorphose2
Métamorphose — это кроссплатформенное средство массового переименования файлов и папок. Для тех, кто предпочитает инструмент с графическим интерфейсом для выполнения операций переименования, Métamorphose — довольно мощный инструмент. Он доступен как для Windows, так и для Linux.
Для начала перейдите на его веб-сайт и загрузите установочный файл для вашего дистрибутива. Он предоставляет файл deb для дистрибутива на основе Debian и пакет RPM для Fedora, Mandriva и SUSE. Он также доступен в AUR в Arch Linux.
После запуска приложения это будет первая вкладка «Средство выбора». Здесь вы выбираете каталог, содержащий файлы, которые вы хотите переименовать
Обратите внимание, что он поддерживает только один каталог на операцию переименования, хотя он может рекурсивно проходить по дочерним папкам в выбранном каталоге
После выбора каталога щелкните вкладку« Renamer ». Отсюда вы можете выбрать правила переименования. На левой панели вы можете выбрать действие, которое хотите выполнить. Например, «вставить» вставит термины в имя, а «длина» позволяет обрезать имя файла до определенного количества символов. Вы также можете выбрать варианты «переместить текст», «заменить» и «изменить». Как видите, он предоставляет широкие возможности для переименования файлов.
Наконец, просто нажмите кнопку «Перейти» в верхней части нижней панели, чтобы запустить действие переименования. Если вы обнаружите какую-либо ошибку после переименования, есть опция Отменить, чтобы отменить все изменения..
Работа с панелями
Ctrl-O — погасить панели и посмотреть что под ними (работает ТОЛЬКО в linux!) здесь же можно поработать в shell’e.
alt-, — Переключить режим отображения панелей (вертикально/горизонтально)
alt-t переключение подробного режима отображения панели
Meta+c — Вызывается меню быстрой смены текущего каталога на активной панели
ctrl-u — поменять панели местами
alt-g — отмечает первый файл или каталог в отображаемом списке на панели (по сути как клавиша Home, поднимает курсор вверх)
alt-e — поменять кодировку панели
Ctrl + x i — переводит пассивную панель в режим «Информация»
Ctrl + x q — переводит пассивную панель в режим быстрого просмотра
ctrl-x ! — меню → «Критерий панелизации» (git)
Опции (ключи)
Утилита mv имеет ключи, с помощью которых можно задать дополнительные функции для команды.
-i, —interactive — интерактивный режим. Предупреждает, что выбранный файл будет записан поверх уже существующего в каталоге назначения.
Примеры:
1. — переместить файл plain.txt в каталог tmp, в котором возможно уже находится файл plain.txt. Если в каталоге действительно находится файл plain.txt, в терминале появится запрос:
Подтверждают, введя слово yes или да (можно одной буквой — y или д). Любой другой ввод пропустит файл.
2. — перемещает все изображения с расширением .jpg из каталога tmp/images/ в текущий каталог (). Если в текущем каталоге встретятся изображения с расширением .jpg, mv выдаст запрос на перезапись. В этой команде используется звёздочка (*) — это подстановочный знак (см. ниже главу «Подстановочные знаки»).
-f, —force — перезаписывать существующие файлы не спрашивая (не выдавать запрос на подтверждение операции). Опция может быть полезной, когда происходит перезапись нескольких файлов с правами для чтения. Например, есть каталог tmp, в котором находится файл plain.txt с правами для чтения; нужно перезаписать этот файл другим файлом plain.txt без лишних вопросов:
Если бы не было ключа , то в терминале появился бы вопрос, примерно, следующего содержания:
-n, —no-clobber — не перезаписывать существующий файл.
Пример:
1. — переместить файл plain.txt в каталог tmp. Если в каталоге tmp уже есть файл plain.txt, то ничего не делать (не перемещать, не перезаписывать и не спрашивать).
Примечание для вышеперечисленных ключей. В случае ошибочной или преднамеренной записи, когда опции , и заданы вместе, срабатывает только последняя. Примеры:
1. — то же, что и . Опция игнорируется.
2. — то же, что и . Опция игнорируется.
3. — то же, что и . Опция игнорируется.
-v, —verbose — режим дополнительных сообщений. Выводить на экран сообщение о каждой выполняемой операции.
Примеры:
1. — переместить файл plain.txt в папку tmp и вывести сообщение о проделанной операции. В терминале отобразится следующее:
Совместное использование опций и с :
1. — переместить файл plain.txt в папку tmp, без вопроса на перезапись, и вывести сообщение о проделанной операции.
2. — переместить без запроса подтверждения все файлы из текущего каталога с именами, начинающимися с plain, вместе со всем каталогом text в каталог tmp, и показать порядок выполнения каждой операции.
3. — переместить файл plain.txt в папку tmp и если в этой папке находится файл с таким же именем, спросить подтверждение на перезапись, а после вывести сообщение о проделанной операции. В терминале будет следующее:
-t, —target-directory=КАТАЛОГ — переместить все исходные файлы в КАТАЛОГ.
Примеры:
1. — переместить файлы plain.txt и plain_2.txt в каталог tmp.
2. — то же, что и предыдущая команда.
-
, — считать НАЗНАЧЕНИЕ обычным файлом, а не каталогом.
-
, — не перезаписывать файлы, если они более новые. Перемещение произойдёт только в том случае, если исходный файл новее чем целевой, или когда целевой файл не существует.
-
, — задать контекст безопасности SELinux файлу назначения как у типа по умолчанию. Для системы SELinux.
-
— удаляет все конечные косые черты (слеши) из каждого исходного файла, заданного в качестве аргумента. Опция может пригодиться, когда исходный файл имеет косую черту на конце и указывает на каталог в виде символьной ссылки.
-
— завершает список опций. Первый знак — признак опции, второй — начало опции. Применяется для использования с файлами, имена которых начинаются со знака минус (-).
Например, если сразу после команды mv или опции идёт файл, имя которого начинается на , в терминале появится ошибка, что такой опции не существует (invalid option, неверный ключ):
В данном случае команда не распознаёт опцию, начинающуюся с буквы p, за которой следуют символы plain.txt. В результате команда не знает, как поступить. Для исправления ошибки предваряют имя файла опцией и дают понять команде mv, что следующие за ней данные должны восприниматься не как опция, а как имя файла:
Примечание. Можно вместо опции использовать точку как часть пути к файлу и тем самым устранить ошибку, которая ввела в заблуждение команду mv. Например:
Должен быть более простой способ
Определенно. Это команда переименования.
rename не является частью стандартного дистрибутива Linux, поэтому его необходимо установить. Он также имеет разные названия в разных семействах Linux, но все они работают одинаково. Вам просто нужно заменить соответствующее имя команды в соответствии с используемой версией Linux.
в дистрибутивах, производных от Ubuntu и Debian, вы устанавливаете переименование следующим образом:
sudo apt-get установить переименовать
В дистрибутивах, производных от Fedora и RedHat, вы устанавливаете prename следующим образом
Обратите внимание на начальную букву «p», обозначающую Perl
sudo dnf установить преимя
Чтобы установить его в Manjaro Linux, используйте следующую команду
Обратите внимание, что команда переименования называется perl-rename
sudo pacman -Syu perl-переименовать
Утилита PYRENAMER для переименования файла
Некоторые пользователи Линукс не любят иметь дело с терминалом, и стараются находить альтернативные способы решения проблем, непосредственно связанных с системой. Если вы относитесь к числу таких людей, предлагаем вашему вниманию другой метод массового переименования файлов. Для реализации этой идеи вы можете воспользоваться графической утилитой pyrenamer. Это означает, что все действия можно выполнить при помощи мышки, но перед этим нужно установить программу:
Утилита представлена в виде окна, состоящего из нескольких блоков:
- Перечень файлов, которые необходимо видоизменить;
- Раздел настроек (здесь пользователь задает параметры переименования файлов);
- Дерево файловой системы.
В утилите pyrenamer часто встречаются подсказки, что значительно упрощает и ускоряет работу пользователю Линукс. С помощью данной программы можно выполнить не только массовое переименование файлов, но и выборочное – вплоть до одного файла. Pyrenamer является полноценным аналогом команды rename и утилиты mv, не уступая им в своей функциональности. Это прекрасный инструмент для тех, кто хочет вносить нужные правки в графическом интерфейсе, не прибегая к использованию терминала и сложных команд.
Заключение
В данной статье представлены самые простые и доступные способы переименования файлов в Линукс (через терминал и графический интерфейс), которые помогут новичку освоить свой дистрибутив.
Базовые команды Linux
pwd для показа текущей рабочей директории
Откройте консоль и введите туда
pwd
У меня вывелось:
/home/mial
Здесь (первый слеш) – это корень, home – это название папки (директории), далее (второй слеш) – отделяет название вложенной папки, mial – название второй вложенной папки.
Команда pwd показывает «текущую рабочую директорию». Текущую рабочую директорию нужно знать при указании относительных путей до файлов и папок, также некоторые программы сохраняют результаты своего выполнения в текущую директорию.
mkdir для создания новых директорий
После mkdir укажите название папки, которую вы хотите создать. Если вы укажите относительный путь, например, так:
mkdir test1
То будет создана новая папка test1 в текущей рабочей директории, т.е. в моём случае путь до неё будет
/home/mial/test1
Также можно указать абсолютный путь до папки:
mkdir /home/mial/test2
Команда ls используется для вывода списка файлов и папок текущей рабочей директории:
ls test1 test2 test.sh Видео Документы Загрузки Изображения Музыка Общедоступные Рабочий стол Шаблоны
Теперь мы можем убедиться, что папки test1 и test2 действительно были созданы.
Чтобы список выглядел лучше, можно использовать команду ls с опцией -l
ls -l
После команды и опций можно указать путь до папки, содержимое которой вы хотим посмотреть. Чтобы увидеть содержимое директории /var/log нужно ввести:
ls -l /var/log
Для просмотра содержимого корневой директории:
ls -l /
cd для перехода по папкам (смены текущей рабочей директории)
Для перехода по папкам используется команда cd после которой пишется директория, в которую вы хотите перейти. Можно указывать относительный путь или абсолютный:
cd test1 cd /home/mial/test2
Символ . (одна точка) означает текущую директорию, а символ … (две точки) означаете родительскую директорию. Следовательно, для перехода на один уровень вверх нужно набрать
cd ..
cp для копирования файлов
Если вам нужно скопировать файл в другую директорию, то используется команда cp. После неё указывается файл, который нужно скопировать и затем через пробел директория, куда вы хотите поместить файл, например:
cp test.sh test1
Этой командой я скопировал файл test.sh в директорию test1. Проверим
ls -l test1 итого 4 -rw-r--r-- 1 mial mial 84 дек 11 15:48 test.sh
mv для переименования и перемещения файлов.
После команды mv указывается имя файла, который вы хотите переименовать или переместить. Затем через пробел пишется директория, куда вы хотите переместить файл (тогда файл будет перемещён в неё с исходным именем), или директория и новое имя файла (тогда файл будет перемещён и переименован), или только новое имя файла (тогда файл будет переименован).
Файл test.sh из каталога test1 я переместил в каталог test2:
mv test1/test.sh test2
Файл test.sh в каталоге test2 я переименовал в test2.sh:
mv test2/test.sh test2/test2.sh
Файл test2.sh в каталоге test2 я переместил в каталог test1 и присвоил ему имя new.txt:
mv test2/test2.sh test1/new.txt
rm для удаления файлов и папок
Чтобы удалить наши тестовые директории, воспользуемся командой rm. После этой команды укажите путь до файла или папки, которые нужно удалить. Если вы собираетесь удалить директорию, то используйте также опцию -r, она означает рекурсивно удалять каталоги и их содержимое. Можно указать сразу несколько файлов и (или) каталогов:
rm -r test1 test2
Для понимания иерархии файловой системы рекомендуется ещё одна статья для новичков «Структура директорий Linux. Важные файлы Linux».
Переименование файлов Linux с помощью rename
В Linux есть еще одна команда, которая позволяет переименовать файл. Это rename. Она специально разработана для этой задачи, поэтому поддерживает такие вещи, как массовое переименование файлов linux и использование регулярных выражений. Синтаксис утилиты тоже сложнее:
$ rename опции ‘s/ старое_имя / новое_имя ‘ файлы
$ rename опции старое_имя новое_имя файлы
В качестве старого имени указывается регулярное выражение или часть имени которую нужно изменить, новое имя указывает на что нужно заменить. Файлы – те, которые нужно обработать, для выбора файлов можно использовать символы подставки, такие как * или ?.
Рассмотрим опции утилиты:
- -v – вывести список обработанных файлов;
- -n – тестовый режим, на самом деле никакие действия выполнены не будут;
- -f – принудительно перезаписывать существующие файлы;
Например, переименуем все htm файлы из текущей папки в .html:
rename ‘s.htm/.html/’ *.htm
Или для изображений:
Символ звездочки означает, что переименование файлов linux будет выполнено для всех файлов в папке. В регулярных выражениях могут применяться дополнительные модификаторы:
- g (Global) – применять ко всем найденным вхождениям;
- i (Case Censitive) – не учитывать регистр.
Модификаторы размещаются в конце регулярного выражения, перед закрывающей кавычкой. Перед тем, как использовать такую конструкцию, желательно ее проверить, чтобы убедиться, что вы не допустили нигде ошибок, тут на помощь приходит опция -n. Заменим все вхождения DSC на photo в именах наших фотографий:
rename -n ‘s/DSC/photo/gi’ *.jpeg
Будут обработаны DSC, DsC и даже dsc, все варианты. Поскольку использовалась опция -n, то утилита только выведет имена изображений, которые будут изменены.
Можно использовать не только обычную замену, но и полноценные регулярные выражения чтобы выполнить пакетное переименование файлов linux, например, переделаем все имена в нижний регистр:
Из этого примера мы видим, что даже если такой файл уже существует, то он перезаписан по умолчанию не будет. Не забывайте использовать опцию -n чтобы ничего случайно не повредить.