Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как поменять расширение файла в ubuntu


Как переименовать файл Linux | Losst

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

В этой статье мы рассмотрим как переименовать файл в Linux с помощью терминала, рассмотрим такие возможности, как массовое пакетное переименование файлов, а также регулярные выражения.

Содержание статьи:

Как переименовать файл в Linux с помощью mv

В Linux существует замечательная стандартная утилита mv, которая предназначена для перемещения файлов. Но по своей сути перемещение - это то же самое, что и переименование файла linux, если выполняется в одной папке. Давайте сначала рассмотрим синтаксис этой команды:

$ mv опции файл-источник файл-приемник

Теперь рассмотрим основные опции утилиты, которые могут вам понадобиться:

  • -f - заменять файл, если он уже существует;
  • -i - спрашивать, нужно ли заменять существующие файлы;
  • -n - не заменять существующие файлы;
  • -u - заменять файл только если он был изменен;
  • -v - вывести список обработанных файлов;

Чтобы переименовать файл linux достаточно вызвать утилиту без дополнительных опций. Просто передав ей имя нужного файла и новое имя:

mv file newfile

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

mv /home/sergiy/test/newfile /home/sergiy/test/file1

Обратите внимание, что у вас должны быть права на запись в ту папку, в которой вы собираетесь переименовывать файлы. Если папка принадлежит другому пользователю, возможно, нужно будет запускать программу через sudo. Но в таком случае лучше запускать с опцией -i, чтобы случайно ничего не удалить.

Переименование файлов Linux с помощью rename

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

$ rename опции 's/старое_имя/новое_имя' файлы

Или:

$ rename опции старое_имя новое_имя файлы

В качестве старого имени указывается регулярное выражение или часть имени которую нужно изменить, новое имя указывает на что нужно заменить. Файлы - те, которые нужно обработать, для выбора файлов можно использовать символы подставки, такие как * или ?.

Рассмотрим опции утилиты:

  • -v - вывести список обработанных файлов;
  • -n - тестовый режим, на самом деле никакие действия выполнены не будут;
  • -f - принудительно перезаписывать существующие файлы;

Например, переименуем все htm файлы из текущей папки в .html:

rename 's\.htm/\.html/' *.htm

Или для изображений:

rename 's\.jpeg/\.jpg/'*

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

  • g (Global) - применять ко всем найденным вхождениям;
  • i (Case Censitive) - не учитывать регистр.

Модификаторы размещаются в конце регулярного выражения, перед закрывающей кавычкой. Перед тем, как использовать такую конструкцию, желательно ее проверить, чтобы убедиться, что вы не допустили нигде ошибок, тут на помощь приходит опция -n. Заменим все вхождения DSC на photo в именах наших фотографий:

rename -n 's/DSC/photo/gi' *.jpeg

Будут обработаны DSC, DsC и даже dsc, все варианты. Поскольку использовалась опция -n, то утилита только выведет имена изображений, которые будут изменены.

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

rename 'y/A-Z/a-z/'*.jpeg

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

Переименование файлов в pyRenamer

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

 sudo apt install pyrenamer

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

Вы можете удалять или добавлять символы, переводить регистр, автоматически удалять пробелы и подчеркивания. У программы есть подсказки, чтобы сделать ее еще проще:

Опытным пользователям понравится возможность pyRenamer для переименования мультимедийных файлов из их метаданных. Кроме того, вы можете переименовать один файл если это нужно. Эта утилита полностью реализует функциональность mv и remove в графическом интерфейсе.

Выводы

В этой статье мы рассмотрели как переименовать файл в консоли linux. Конечно, есть и другие способы, например, написать скрипт, или использовать файловые менеджеры. А как вы выполняете сложные операции по переименованию? Напишите в комментариях!

Типы файлов в Ubuntu | Русскоязычная документация по Ubuntu

Начинающим пользователям Ubuntu зачастую нелегко привыкнуть к некоторой специфике обращения с файлами в этой системе. Однако на самом деле всё крайне просто и очень элегантно, в этой статье я постараюсь объяснить все тонкости, чтобы потом при использовании системы вы не удивлялись некоторым непонятным с первого взгляда вещам.

Названия файлов и папок

Я уже упоминал, что в Linux все имена файлов являются регистрозависимыми, то есть вы спокойно можете создать в одном каталоге два файла с одинаковыми именами, но записанными в различных регистрах, например, Ubuntu.txt и ubuntu.txt.

Кроме того, я так же говорил, что вы можете использовать в именах файлов абсолютно любые символы, которые пожелаете, кроме прямого слеша /1), однако в силу некоторых причин я бы не рекомендовал использовать следующие символы: \ < > *, а также символы переноса строки и табуляции. Вы можете подписывать свои файлы китайскими иероглифами, рунами, греческими буквами и вообще чем угодно, если вам конечно будет удобно использовать такие имена2).

Ну и напоследок ещё раз напомню, что разделителем каталогов в пути к файлу в Linux всегда является символ /, в отличие от Windows, в которой используется \.

Доступ к файлам

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

Содержимое и расширение файлов

Если вы пользовались раньше операционными системами Windows, то вы скорее всего привыкли к тому, что тип файла определяется его расширением (последняя часть имени файла после точки). Например, файл «Голубой ледопад.mp3» - это музыка в формате mp33), а «Урания.txt» - это текстовый файл4). На самом деле всё немного не так, расширение - это всего лишь часть имени файла, которое никак не зависит от собственно содержимого, и тип файла обычно определяется по-другому5). Например, перейдите в Ubuntu в какую-нибудь папку с mp3 файлами и переключитесь на режим отображения списком6). В колонке «Тип» рядом с mp3 файлами вы увидите «аудио MP3»:

Теперь переименуйте любой файл, приписав ему вместо mp3 расширение ??.

Видите, тип файла не изменился. Если вы сейчас попробуете открыть такой файл, то он преспокойно откроется как mp3 в проигрывателе7).

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

Кстати, в Ubuntu есть мощная утилита определения типа файла, которая вообще не смотрит на имя и расширение, а пытается идентифицировать файл только по содержимому. Она бывает полезна, когда файл по каким-либо причинам не открывается, поскольку позволяет убедиться, что в нём содержаться данные именно того типа, которого вы и ожидаете там увидеть. Утилита эта консольная и называется file. Вот что она говорит о переименованном в текстовый документ аудио в формате mp3:

Обмануть утилиту file практически невозможно, а знает она о большинстве используемых форматов файлов.

Исполняемые файлы

В вопросах исполняемых файлов, то есть, если по простому, обычных программ, Ubuntu кардинально отличается от Windows. В Windows исполняемые файлы имеют расширение exe (в основном), а внутри представляют из себя нечитаемый набор байтов. А в Ubuntu исполняемым может быть даже текстовый файл. Сразу скажу, что exe - это программы для Windows и в Ubuntu они не работают без Wine (приложения для запуска исполняемых файлов Windows в Linux), но вообще говоря и в Wine они работают далеко не всегда.

Итак, что же такое исполняемый файл с точки зрения Ubuntu? Фактически это любой файл, который помечен, как исполняемый и который Ubuntu сможет запустить на выполнение. Означает это вот что: у каждого файла есть специальное свойство-переключатель, никак не зависящее ни от имени, ни от содержимого, отвечающее за исполняемость. Если файл помечен, как исполняемый, то вообще говоря он таковым и является, а если не помечен - то это обычный файл с данными и напрямую запустить его на выполнение нельзя. Другое дело, что не любой файл, помеченный как исполняемый, Ubuntu сможет выполнить, хотя в арсенале Ubuntu есть масса методов запуска файлов с совершенно различным содержимым.

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

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

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

Вот так всё на самом деле просто и красиво, надеюсь, вы осознали основную логику и не будете путаться при работе с исполняемыми файлами в Ubuntu.

Текстовые файлы

Текстовые файлы в Ubuntu повсюду. Все настройки хранятся в виде текстовых файлов, исходные коды всех программ представляют из себя текстовые файлы, многие программы в Ubuntu являются на самом деле скриптами, то есть тоже текстовыми файлами. И естественно Ubuntu умеет работать с текстовыми файлами как угодно. И этой темы даже не пришлось бы касаться, если бы не одна проблема операционных систем Windows. Дело в том, что в Windows до сих пор кое-где ещё используется устаревший в 90-х прошлого столетия способ сохранения обычного текста, в частности, в текстовых файлах8).

На самом деле большинство файлов откроется в стандартном текстовом редакторе Ubuntu без проблем9), но всё же иногда попадаются файлы, которые отображаются «кракозябрами». В этом случае необходимо немного помочь Gedit и указать кодировку файла вручную. Для этого закройте в редакторе вкладку с нечитаемым файлом, затем выберите в меню программы пункт «Открыть», найдите свой файл и обратите внимание на поле «Кодировка символов», находящееся внизу диалогового окна открытия. В этом поле необходимо указать нужную кодировку, после чего файл откроется уже в пригодном для чтения виде. Кстати, рекомендую такие файлы сразу сохранять в utf-8, дабы в дальнейшем не возникало с ними проблем.

Существуют и более лёгкие способы работы с кодировками, например, плагин для Gedit, позволяющий менять кодировку у открытых файлов без необходимости их переоткрывания. Кроме того, существуют утилиты для автоматического перекодирования файлов в utf8, например, enca. Можно также управлять механизмом автоопределения кодировки в Gedit, это делается через редактор конфигурации, про который я немного расскажу в одной из последних статей.

Напоследок хочется сказать, что очень рекомендуется так или иначе перевести всю текстовую информацию на использование utf8, поскольку фактически только эта кодировка нормально распознаётся везде и всегда, а в будущем скорее всего только она и будет использоваться.

Аудиофайлы

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

Что же касается форматов, то Ubuntu поддерживает все существующие аудио-форматы, однако для воспроизведения некоторых требуются дополнительные кодеки. О том, как их поставить, я расскажу в одной из следующих статей.

Изменение ассоциаций файлов с приложениями

Когда вы немного освоитесь в Ubuntu, у вас возможно возникнет желание познакомиться с доступными в изобилии в репозиториях программами. И вскоре после того, как вы выберите из бесчисленного множества альтернатив подходящие для себя приложения, перед вами скорее всего встанет вполне закономерный вопрос: а как заставить определённые типы файлов открываться в установленных вами программах, а не в доступных по умолчанию?

Ответ на него весьма прост. Нажмите правой клавишей мыши на любом файле нужного типа, выберите в появившемся меню пункт «Свойства» и в открывшемся окне перейдите на вкладку «Открывать в программе»:

В списке будут содержаться все приложения, которые сообщили Ubuntu о поддержке ими выбранного типа файлов. Ну а отмечена будет программа, используемая по умолчанию. Вам останется только выбрать нужное приложение и закрыть окно, после чего файлы указанного типа начнут открываться по умолчанию в выбранном вами приложении. То есть если вы хотите, например, чтобы фильмы в формате avi открывались в установленном вами VLC, а не в медиапроигрывателе Totem, то вам всего лишь надо в свойствах любого avi файла отметить VLC в качестве приложения по умолчанию.

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

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

В качестве заключения

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

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

Как редактировать файлы в Ubuntu

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

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

Содержание статьи:

Как редактировать файлы в Ubuntu

Новичкам намного проще редактирование файлов ubuntu в графическом интерфейсе и для этого в этой системе по умолчанию поставляется программа Gedit. Это очень простой, но достаточно функциональный текстовый редактор, который позволяет делать все что нужно.

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

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

Также вы можете запустить Gedit через терминал. Для этого откройте терминал с помощью сочетания клавиш Ctrl+Alt+T, и выполните:

gedit /путь/к/папке/с_файлом/файл

 

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

Обычно права установлены таким образом, что открыть то вы его сможете, а вот сохранить изменения уже нет. Запустите терминал и выполните:

gksu gedit /путь/к/папке/с_файлом/файл

После этого программа запросит пароль и запустит текстовый редактор от имени администратора. Дальше вы сможете успешно выполнить редактирование файлов в Ubutnu и сохранить изменения в файле.

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

sudo apt update

Установите пакет nautilus-admin:

sudo apt install -y nautilus-admin

Затем выполните такую команду чтобы полностью закрыть Nautilus:

nautilus -q

Теперь загрузите Nautilus, и в меню появится пункт Редактировать как администратор:

 

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

Редактирование файлов в Ubuntu через терминал

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

nano /путь/к/файлу/имя_файла

Если файл нужно открыть от имени администратора:

sudo nano /путь/к/файлу/имя_файла

Редактор nano очень прост, для перемещения по файлу используйте кнопки со стрелками, после того, как закончите редактировать файл ubuntu, нажмите чтобы сохранить Ctrl+O, а для выхода Ctrl+X. Еще поддерживается поиск и замена, но все на очень примитивном уровне, и этого явно недостаточно для того чтобы работать эффективно.

Другой редактор ориентирован на профессионалов - это редактор vim. Он очень гибкий, может работать в двух режимах - командном и обычном режиме набора текста. Чтобы открыть с помощью него файл выполните:

vi /путь/к/файлу/имя_файла

Или для редактирования файла с правами суперпользователя:

sudo vi /путь/к/файлу/имя_файла

В командном режиме вы можете выполнять поиск, быстро перемещаться по строкам и символам с помощью клавиш набора, а также много других действий. Мы подробно рассматривали как работать с vim в отдельной статье.

Выводы

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

Оцените статью:

Загрузка...

Переименование файлов в Linux. Linux статьи

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

Переименование командой mv

 
Команда mv (от слова move) используется для переименования или перемещения файлов и директорий из командной строки.

Синтаксис команды mv очень простой:

mv опции источник назначение

источник — файл(ы) или директория, которую необходимо переместить или переименовать.
назначение — файл или директория, в которую будет перемещен источник.

Основные опции:
-f — перезаписывать существующие файлы.
-n — не перезаписывать существующие файлы.
-i — выдавать запрос на перезапись существующих файлов.
-u — не перемещать файлы, которые уже существуют, если существующие файлы новее (время модификации новее).
-v — выводить имя каждого файла перед его переносом.

Как задавать имена файлов и директорий для переименования:

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

Рассмотрим примеры.

Переименование файла

Переименование файла myfile1.dat в файл myfile2.dat:

mv myfile1.dat myfile2.dat

Переименование файла с указанием пути до файла:

mv /home/pingvinus/myfile1.dat /home/pingvinus/myfile2.dat

Переименование директории

Переименование директории /home/pingvinus/mydir1 в директорию /home/pingvinus/mydir2. Справедливо, если /home/pingvinus/mydir2 не существует.

mv /home/pingvinus/mydir1 /home/pingvinus/mydir2

Если /home/pingvinus/mydir2 существует, то, выполнив команду:

mv /home/pingvinus/mydir1 /home/pingvinus/mydir2

директория mydir1 будет перемещена внутрь директории /home/pingvinus/mydir2. То есть mydir1 будет в результате находиться по адресу /home/pingvinus/mydir2/mydir1.

Переименование и перемещение

Если в качестве файла назначения указан новый путь и новое имя файла, то файл будет перемещен и переименован. Например, следующая команда перемещает файл myfile1.dat в директорию /home/pingvinus/dir и переименовывает его в myfile2.dat:

mv /home/pingvinus/myfile1.dat /home/pingvinus/dir/myfile2.dat

Переименование командой rename

Команда rename служит для массового (пакетного) переименования файлов. Она позволяет выполнять замену определенных символов или частей имени файла и использованием Perl-регулярных выражений.

Если вдруг в вашем дистрибутиве нет команды rename, то ее можно установить, выполнив (выберите соответствующую команду для вашего дистрибутива):

sudo apt install rename sudo yum install prename yaourt -S perl-rename

Синтаксис команды rename:

rename опции ’s/старое_имя/новое_имя’ файлы

старое_имя — регулярное выражение или часть имени файла, которое нужно заменить на новое_имя.
новое_имя — задает результирующее имя файла (может быть регулярным выражением).

Основные опции:
-f — перезаписывать существующие файлы.
-n — вывести список файлов, которые будут переименованы и их новые имена, но не выполнять переименование.
-v — вывести список обработанных файлов.

Проще всего понять, как пользоваться данной командой, на примерах.

Изменение расширения файлов

Массово изменить расширение .html на .php у всех html-файлов.

rename 's/.html/.php/' *.html

По умолчанию rename не перезаписывает существующие файлы. Чтобы существующие файлы перезаписывались, используется опция -f:

rename -f 's/.html/.php/' *.html

Замена пробелов на подчеркивание

Заменить все символы пробелов в имени файлов на символ подчеркивания:

rename 'y/ /_/' *

Конвертация имен файлов в строчные буквы

rename 'y/A-Z/a-z/' *

Конвертация имен файлов в прописные буквы

rename 'y/a-z/A-Z/' *

Показать, что именно будет переименовано, но не переименовывать

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

Например, мы хотим изменить расширение у файлов с .jpeg на .jpg. Используем опцию -n, чтобы просто вывести какие файлы будут переименованы:

rename -n 's/\.jpeg$/.jpg/' *

Полное описание команд mv и rename можно получить, выполнив в терминале команды:

man mv man rename

Массовое переименование с использованием программ

Для массового переименования файлов можно воспользоваться программами:

Как рекурсивно изменить расширение нескольких файлов из командной строки?

Одна проблема с рекурсивными переименованиями заключается в том, что какой бы метод вы ни использовали для поиска файлов, он передает весь путь к rename, а не только имя файла. Это затрудняет выполнение сложных переименований во вложенных папках.

я использую find"s -execdir действие, чтобы решить эту проблему. Если вы используете -execdir вместо -execуказанная команда запускается из подкаталога, содержащего соответствующий файл. Таким образом, вместо того, чтобы пройти весь путь к rename, это только проходит ./filename, Это значительно облегчает написание регулярного выражения.

find /the/path -type f \ -name '*.abc' \ -execdir rename 's/\.\/(.+)\.abc$/version1_$1.abc/' '{}' \; 

В деталях:

  • -type f означает только искать файлы, а не каталоги
  • -name '*.abc' означает означает, что совпадают только имена файлов, которые заканчиваются на.abc
  • Обратные слеши после -type а также -name являются символом продолжения строки bash. Я использую их, чтобы сделать этот пример более читабельным, но на практике они не нужны.
  • Тем не менее, обратная косая черта в конце -execdir линия обязательна. Это там, чтобы отделить точку с запятой, которая завершает команду, запускаемую -execdir, Веселье!

Объяснение регулярного выражения:

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

Но команда mv не будет поддерживать переименование нескольких файлов одновременно.

Она может переименовывать только один файл за раз.

Не волнуйтесь.

Доступно несколько других утилит, особенно для пакетного переименования файлов.

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

Все примеры, представленные здесь, тестируются в Ubuntu 18.04 LTS, однако они должны работать на любых операционных системах Linux.

Давайте начнем!

Переименование нескольких файлов сразу в Linux

Может быть много команд и утилит для переименования группы файлов.

Я буду продолжать обновлять список, если буду сталкиваться с любым методом в будущем.

Метод 1 — Использование mmv

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

Она доступна в репозиториях по умолчанию систем на базе Debian.

Чтобы установить его на Debian, Ubuntu, Linux Mint, выполните следующую команду:

$ sudo apt-get install mmv

Скажем, у вас есть следующие файлы в вашем текущем каталоге.

$ ls
 a1.txt a2.txt a3.txt

Теперь вы захотите переименовать все файлы, начинающиеся с буквы «a» на «b».

Конечно, вы можете сделать это вручную через несколько секунд.

Но подумайте, есть ли у вас сотни файлов и хотите их все переименовать?

Это довольно трудоемкий процесс. Здесь команда mmv приходит в помощь.

Чтобы переименовать все файлы, начиная с буквы «a» до «b», просто запустите:

$ mmv a\* b\#1

Давайте проверим, были ли файлы переименованы или нет.

$ ls
 b1.txt b2.txt b3.txt

Как вы можете видеть, все файлы начинаются с буквы «a» (т.е. a1.txt, a2.txt, a3.txt), переименовываются в b1.txt, b2.txt, b3.txt.

Вы даже можете переименовать все файлы с определенным расширением на другое расширение.

Например, чтобы переименовать все .txt-файлы в формат .doc в текущем каталоге, просто запустите:

$ mmv \*.txt \#1.doc

Вот еще один пример. Скажем, у вас есть следующие файлы.

$ ls
 abcd1.txt abcd2.txt abcd3.txt

Вы хотите заменить первое abc на xyz во всех файлах в текущем каталоге. Как бы вы поступили?

Пример

$ mmv '*abc*' '#1xyz#2'

Обратите внимание, что в приведенном выше примере я включил шаблоны в одинарные кавычки.

Давайте проверим, действительно ли «abc» заменено на «xyz» или нет.

$ ls
 xyzd1.txt xyzd2.txt xyzd3.txt

Файлы abcd1.txt, abcd2.txt и abcd3.txt были переименованы в xyzd1.txt, xyzd2.txt и xyzd3.txt.

Еще одна заметная особенность команды mmv — вы можете просто посмотреть вывод вместо переименования файлов с помощью опции -n, как показано ниже.

$ mmv -n a\* b\#1 
 a1.txt -> b1.txt
 a2.txt -> b2.txt
 a3.txt -> b3.txt

Таким образом, вы можете просто проверить, что действительно сделала команда mmv, прежде чем переименовывать файлы.

Для получения дополнительной информации см. Справочные страницы.

$ man mmv

Способ 2. Использование утилиты rename

Утилита rename переименовывает данные файлы, заменяя первое выражение в их имени заменой.

Команда rename устанавливается в большинстве Unix-подобных операционных систем.

Если он по умолчанию недоступен, выполните следующую команду, чтобы установить его в системах на базе Debian:

$ sudo apt install rename

Например, у меня есть следующие файлы в текущем каталоге.

$ ls
 abcd1.txt abcd2.txt abcd3.txt

Заменим первое  abc на xyz, где бы оно ни находилось. Для этого запустите:

$ rename 's/abc/xyz/' *

Теперь проверьте, были ли сделаны изменения с помощью команды ls.

$ ls
 xyzd1.txt xyzd2.txt xyzd3.txt

Иногда вы можете просто вывести выходные данные вместо переименования файлов.

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

$ rename -n 's/abc/xyz/' *
 rename(abcd1.txt, xyzd1.txt)
 rename(abcd2.txt, xyzd2.txt)
 rename(abcd3.txt, xyzd3.txt)

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

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

$ rename -f 's/abc/xyz/' *

Если вы не хотите перезаписывать файлы, вы можете просто преобразовать их в заглавные или строчные буквы (и наоборот), чтобы предотвратить «уже существующие» ошибки.

Чтобы преобразовать все имена файлов в нижний регистр:

$ rename 'y/a-z/A-Z/' *

Давайте проверим, были ли внесены изменения.

$ ls
 ABCD1.TXT ABCD2.TXT ABCD3.TXT

Да, буквы в именах файлов были изменены с нижнего регистра на верхний регистр.

Аналогично, чтобы преобразовать имена файлов в нижний регистр, выполните:

$ rename 'y/A-Z/a-z/' *

Мы также можем удалить все пустые ячейки в имени файла.

Например, у меня есть следующий файл.

$ ls
 Clouds of Sunset.mp3

Чтобы удалить все пробелы в указанном выше имени файла, запустите:

$ rename "s/ *//g" *

Теперь имя файла не имеет пробелов.

$ ls
 CloudsofSunset.mp3

Заменить пробелы символами подчеркивания:

$ rename 's/\s+/_/g' *

Возможно, вы захотите изменить расширение файла, но не переименовать имена файлов.

Это также возможно.

Следующая команда переименовала бы все * .txt-файлы в * .doc.

$ rename 's/\.txt$/.doc/' *.txt

Проверьте изменения с помощью команды ls:

$ ls
 abcd1.doc abcd2.doc abcd3.doc

Чтобы удалить расширение во всех файлах, соответствующих .txt, запустите:

$ rename 's/\.txt$//' *.txt

Для получения дополнительной информации см. Справочные страницы.

$ man rename

 

Поделитесь статьей:

gedit - Как изменить тип расширения текстового файла в Linux?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

изменить расширение файла в unix

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

linux - Как изменить права доступа к файлам в Ubuntu

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Прочитать имя файла без расширения в Bash - Linux Hint

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

Использование команды basename для чтения имени файла

Команда

`basename` используется для чтения имени файла без расширения из каталога или пути к файлу.

Синтаксис:

или

базовое имя ОПЦИЯ ... ИМЯ ...

Здесь ИМЯ может содержать имя файла или имя файла с полным путем. SUFFIX является необязательным и содержит часть расширения файла, которую пользователь хочет удалить. У команды basename есть несколько параметров, которые описаны ниже.

Опции

Имя Описание
Он используется для передачи нескольких имен файлов с путем или без пути в качестве аргументов команды.
Используется для передачи расширения как суффикса, который необходимо удалить.
-z Он используется для отображения нескольких имен файлов путем разделения каждого файла нулевым символом.
–справка Используется для отображения информации об использовании команды basename.
–версия Используется для отображения информации о версии.

Пример 1: Использование ИМЯ и СУФФИКСА

Следующая команда `basename` получит имя файла с расширением. СУФФИКС не указан в этой команде. Здесь выводится ‘product.txt’ .

$ базовое имя /home/fahmida/code/product.txt

Если вы хотите получить имя файла без расширения, вы должны указать расширение файла как SUFFIX с помощью команды basename.Здесь расширение - «.txt». Выполните следующую команду, чтобы удалить расширение из файла.

$ базовое имя /home/fahmida/code/product.txt .txt

Пример-2: Использование опции «-a» и ИМЯ

В этом примере показано использование опции «-a» команды «basename». Здесь два пути к файлам передаются в качестве аргументов с помощью команды basename. Каждое имя файла с расширением будет извлекаться из пути и печататься с новой строкой.

$ базовое имя -a / home / fahmida / index.html /home/fahmida/code/emp.txt

Пример-3: Использование опции «-z» и ИМЯ

Параметр

‘-z’ используется с командой `basename` для печати нескольких имен файлов с нулевым значением вместо новой строки. Следующая команда использует вместе две опции: «-a» и «-z». Здесь два имени файла, index.html и emp.txt , будут напечатаны без пробелов или новой строки.

$ basename -az /home/fahmida/index.html /home/fahmida/code/emp.txt

Пример 4: Использование опции «-s» и ИМЯ

Следующая команда может использоваться как альтернатива SUFFIX с `basename`.Расширение файла необходимо передать с опцией «-sh», чтобы удалить расширение файла из файла. В следующем примере будет удалено расширение ‘-sh’ из файла ‘addition.sh’.

$ basename -s .sh add.sh

Пример 5: Удалить расширение файла без SUFFIX

Если вы не знаете расширение файла, который хотите удалить из имени файла, этот пример поможет вам решить проблему. Создайте файл с именем read_file.sh со следующим кодом для получения имени файла любого расширения. Команда sed используется в этом примере для удаления любого типа расширения из имени файла. Если вы запустите сценарий, на выходе будет « в среднем » после удаления расширения « py ».

read_file.sh

#! / Bin / bash
# Установить имя файла по пути
filename = "/ home / fahmida / code / average.py"
# Прочитать имя файла без расширения с помощью команды 'basname' и `sed`
echo" $ (базовое имя "$ filename" | sed 's / \ (.* \) \ .. * / \ 1 / ') "

Запустите сценарий.

Пример 6: преобразование расширения файла из txt в docx

Имя файла без расширения требует преобразования файла из одного расширения в другое. Этот пример показывает, как вы можете изменить расширение всех текстовых файлов (.txt) на файлы word (.docx) с помощью команды `basename` в сценарии bash. Создайте файл с именем convert_file.sh со следующим кодом. Здесь цикл for-in используется для чтения всех текстовых файлов с “.txt » из текущего каталога. Имя файла без расширения читается командой `basename` и переименовывается путем добавления расширения« .docx »на каждой итерации цикла.

convert_file.sh

#! / Bin / bash
# цикл будет читать каждый текстовый файл из текущего каталога
для имени файла в `ls * .txt`
do
# Распечатать текстовое имя файла перед преобразованием
echo" Имя файла перед преобразованием: $ filename "
# Измените расширение файла txt на docx
mv - "$ filename" "$ (basename -" $ filename ".txt) .docx "
выполнено

Запустите сценарий.

Проверьте, преобразованы ли текстовые файлы, с помощью команды ls.

Пример 7: Чтение имени файла без расширения с использованием расширения параметров оболочки

Расширение параметров оболочки - это еще один способ прочитать имя файла без расширения в bash. В этом примере показано использование расширения параметров оболочки. Следующая команда сохранит путь к файлу в переменной $ filename .

$ filename = "/ var / usr / temp / myfile.tar.gz"

Следующая команда удалит все типы расширений из пути и сохранит путь к файлу без расширения в переменной $ file1 .

$ file1 = "$ {filename %%. *}"

Следующая команда напечатает имя файла только из пути. Здесь вывод будет « myfile ».

Если имя файла содержит два расширения с двумя точками (.), И вы хотите прочитать имя файла, удалив последнее расширение файла, то вы должны использовать следующую команду.Выполните следующую команду, чтобы сохранить путь к файлу в переменной $ file2 , удалив последнее расширение файла.

Теперь выполните следующую команду, чтобы напечатать имя файла с расширением в одну точку (.). Здесь вывод будет «myfile.tar».

Заключение

Имя файла без расширения требуется для различных целей. Некоторые варианты использования имени файла без расширения объясняются в этом руководстве с помощью некоторых примеров, таких как преобразование файлов.Это руководство поможет тем пользователям, которым интересно узнать, как отделить имя и расширение файла от пути к файлу. Здесь объясняются два способа. Пользователь может использовать любой из этих способов для извлечения имени файла только из пути к файлу.

.

linux - как открыть расширение .sh в ubuntu

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Загрузка…

.

ubuntu - изменение прав доступа к файлам Linux

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

Смотрите также