Как переименовать папку через командную строку?

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

Подробный обзор

ответа

Лучший ответ

Без переименования вы можете изменить имена файлов, выполнив обе замены «$one» и «$two» с помощью команды mv и подстановка команды с помощью {{ X3 } } . Это исключает «Какую версию переименования у меня есть?»

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

one=»ssss» two=»1234″ for i in *; do mv «$i» «$(sed ‘s/^\(.*hs5_\)[^.]*\([.].*com_\)[0-9]*\(.*$\)/\1′»$one»‘\2′»$two»‘\3/’ <<< «$i»)» done

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

< Сильный > Объяснение

Команда замещения sed — sed ‘s/find/replace/’, где в вашем случае находка разбита на части:

  • ^\(.*hs5_\) совпадают с начала имени файла до «hs5_» захвата текста в группе захвата \( … \) с использованием основных регулярных выражений, которые должны быть повторно вставлены с первой обратной ссылкой \1;
  • с «hs5_» и далее мы сопоставляем [^.]* последовательность символов, не содержащую ‘.’;
  • затем мы получаем из ‘.’ через «com_» захват \([.].*com_\) для повторной вставки со второй обратной ссылкой \2; и наконец
  • захватить все символы до конца имени файла с \(.*$\) для повторного вставления как \3

Для части замены мы просто включаем захваченный текст, делая замены переменных:

  • \1′»$one»‘\2′»$two»‘\3

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

Базовое перемещение файла выполняется с помощью mv «$i» «$(sed … <<< «$i»), где имя файла передается команде sed с использованием только Here-String <<<, которая перенаправляет содержимое переменной команды sed на stdin, позволяющей sed выполнять подстановки, завершающие перемещение.

2 David C. Rankin 27 Дек 2019 в 03:35

Согласно шаблону same_same_»${one}»_»${two}».same, как насчет:

one=»ssss» two=»1234″ for f in *.*; do IFS=_ read -ra a <<< «$f» a[2]=»${one}.${a[2]#*.}» a[3]=»${two}.${a[3]#*.}» (IFS=_; mv — «$f» «${a[*]}») done

Сначала он разделяет имя файла на _, заменяет указанные позиции на переменные, затем объединяет их снова как новое имя файла.

2 tshiono 27 Дек 2019 в 04:00

Это также может работать для вас — (GNU параллельно):

parallel ‘mv {1} {=1 s/(_.*_)[^.]+(.*_)[^.]+/$1$arg[2]$2$arg[3]/ =}’ ::: * ::: ssss ::: 1234

Используйте GNU параллельно для исключения переменных forloop и shell. {=n … =} позволяет использовать команды perl для n-й строки позиционной замены. В этом случае используйте команду замены для замены частей каждого имени файла, полученного из ::: *.

Примечание . Перед выполнением этой команды всегда рекомендуется вставить параметр —dry-run и проверить его вывод перед запуском.

2 Curious Sam 29 Дек 2019 в 21:55

Я вышел с этим для ваших имен файлов (2019-12-19_hs5__)

one=»ssss» two=»1234″ for file in *; { name=${file//_[0-9]*.g/_$two.g}; name=${name//_*.d/_$one.d}; mv $file $name; }

Этот метод использует подстановки переменных $ {var // pattern / change}

1 Ivan 27 Дек 2019 в 13:14

Файлы — cmd. Работа с файлами из консоли. Часть 2

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

  • Перемещать файлы.
  • Переименовывать файлы.
  • Выводить содержимое файлов в консоль.
  • Записывать в файл (txt) результат выполнения команды.

Как всегда, все команды будут представлены Вашему вниманию в сопровождении коротких, но ясных описаниях, а так же будут прилагаться «Пошаговые» скриншоты.

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

Как переместить файл через консоль?

Для перемещения файлов используется команда под названием «MOVE». Что бы переместить файл из корня диска «C:\ » в папку, в моём случаи это «С:\Test_Move» пишем в консоль:

Результат выполнения команды. Файл «» был перемещён в папку «Test_Move»

Если Вам нужно переместить все файлы с конкретным расширением, то в этом случаи стоит писать так:

Для примера я создал 3 файла «Move_, Move_ и Move_» Как видно из скриншота выше, все три файла были перемещённых. В этом можно убедится не закрывая консоль.

Для проверки используем команду «DIR»

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

Если ввести символ «Y» то файл будет перезаписан. При этом содержимое уже имеющегося файла в каталоге «C:\Test_Move\» будут потеряны.

Если ввести символ «N» файл не будет перемещён.

Если ввести «ALL» то будут перемещены и перезаписаны все файлы с конкретным расширением. При этом, также, содержимое файлов в директории «C:\Test_Move\» будут потеряны.

Примечание: За место «ALL» можно просто ввести букву «А» результат будет додже.

Что бы отключить предупреждения используется ключик «/Y»

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

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

Для того, чтобы переименовать существующий файл используется команда «RENAME» Я создал файл с именем «» в корне диска «С:\» что бы его переименовать, скажем в «NEW_» пишем в консоли.

Читайте также:  iOS 14: ошибки обновления, их решение и ответы на вопросы

Файл «» будет переименован.

Примечание: Команду «RENAME» можно писать короче, просто «REN» от этого результат не изменится.

Можно сменить расширения у всех файлов в каталоге, например с «txt» на «cmd». Для этого делаем так:

Теперь уже в знакомой нам папке «Test_Move» все 3(три) файла приобретут расширение «cmd» за место «txt»

Как вывести содержимое файла в консоль?

Если появилась необходимость просмотреть содержимое файла прямо в cmd. Для этого пользуемся командой «TYPE» Я создал файл и написал в нём адрес своего блога. Теперь попробуем просмотреть данный файл из консоли, не запуская его обычном, привычным образом.

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

Для этого пишем так:

Для примера взял текст с первого попавшегося забугорного сайта.

В конце добавляем «| more» таким образом содержимое файла будет выводится не полностью а отрывками, чтобы просмотреть следующею часть файла жмём «Enter»

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

Для примера запишем в файл результат команды «DIR» В консоль пишем:

Обратите внимание на символ «>» он то и играет здесь главную роль. В итоге появится файл на диске «C:\» с именем «» куда будет записан результат выполнения команды.

Если Вам понадобится записать результат команды «DIR» ещё раз, то файл «» будет перезаписан и ранние содержимое файла будет удалено!

Что бы этого избежать и просто добавить новый результат не удаляя старый, стоит использовать символ «>» два раза, то есть вот так:

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

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

Спасибо за внимание!

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

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

Комментирование приветствуется.

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Создание файлов и директорий в терминале Linux

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

1. С помощью команды touch:

Вводим команду touch, затем путь и название нового файла.

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

touch /путь/к/файлу/название_файла

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

2. С помощью перенаправления стандартного потока вывода любой команды

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий
  • О перенаправлении стандартных потоках вывода в файл более подробно будет рассказано в одной из следующих статей о терминале Linux.
  • Создать файл можно также перенаправлением вывода любой команды в файл.
  • В общем виде команда будет следующей:

какая_нибудь_команда > /путь/к/файлу/наименование_файла

  1. То есть, команда с выводом, затем галочка вправо >, означающая перенаправление вывода команды в файл и путь к файлу.
  2. Например, перенаправим вывод справки команды ls в файл, который будет создан (а если такой файл есть, то он будет полностью перезаписан):
  3. Но это мы создали не пустой файл, а если хотим создать пустой, то воспользуемся командой echo c переданной ей пустой строкой (две одинарных ковычки) и перенаправим это в файл:
Читайте также:  Twitter объяснил, зачем поменял API. Пользователям это не нравится

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

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий
  • Передаем команду запуска любого текстового редактора и путь к файлу.
  • Самый простой консольный текстовый редактор это nano:
  • Или с помощью текстового редактора с графическим интерфейсом, который установлен в Gnome по умолчанию:
  • Про манипуляции с текстом более подробно в одной из следующих статей о терминале Linux.

Создание директорий (каталогов) в терминале Linux

  1. Создание каталогов выполняется командой «mkdir» (от англ. make directory):
  2. Создать директорию с именем «dir1»:
  3. Создать две директории одновременно:
  4. Создать дерево директорий:

Удаление файлов и директорий в терминале Linux

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Для удаления директорий используется команда «rmdir» (от англ. remove directory):

Удаляются директории аналогично, как и создаются. Такие же команды.

Удаление файлов в терминале Linux

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Для удаления файлов используется команда «rm» (от англ. remove).

  • Работает очень просто, пишете команду rm и путь к файлу, который хотите удалить:
  • Удалить файл с именем «file1»:

Но команда «rm» позволяет удалять не только файлы, но и директории (каталоги) вместе с их содержимым.

  1. Удалить директорию с именем «dir1» и рекурсивно всё её содержимое:
  2. Удалить две директории и рекурсивно их содержимое:
  3. Также можно добавить параметр -f, который означает, что при удалении не будет запрашиваться подтверждение на удаление. Команды будут выглядеть так:
Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Перемещение и переименование файлов и директорий в терминале Linux

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

Всё очень просто. Чтобы переименовать файл, выполняем команду:

mv название_файла новое_название

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий
  • Чтобы переместить файл:

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

Для копирования используется команда «cp» (от англ. copy).

  1. Скопировать файл file1 и назвать его file2:
  2. Копировать директорию dir1 в директорию dir2:
  3. Копировать файл с именем file1 в директорию c именем dir1:
Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Справка о командах

  • У каждой команды присутствует множество параметров, чтобы узнать их, просто наберите команду и параметр —help:
  • Например:

Топ-Bash-команд: итоги

Получение информации

man: вывод руководства (справки) по команде pwd: вывод рабочей директории ls: список содержимого директории ps: просмотр выполняемых процессов

Действия

cd: изменение рабочей директории touch: создание файла mkdir: создание директории cp: копированиеmv: удаление или переименование ln: ссылка

Перенаправление и конвейеризация

<: перенаправление stdin >: перенаправление stdout |: конвейерная передача содержимого из одной команды в другую

Чтение

head:чтение начала файла tail:чтение конца файла cat: чтение файла или конкатенация файлов

Завершение

rm: удалениеkill: завершение процесса

Поиск

grep: поискag: поиск

Архивация

tar: объединение нескольких файлов в один.

Работа с каталогами

alt-o — открыть каталог под курсором в соседней панели

alt-i — открыть текущий каталог в соседней панели

сtrl-\ — показать «Справочник каталогов»

ctrl-x, h — добавить ссылку на текущий каталог в меню быстрого доступа

alt-shift-h — Отобразить историю каталогов

Ctrl+l — Перерисовать экран

Ctrl+r — перечитать содержимое каталога

Ctrl+Space — Показать размер текущего каталога

Ctrl-X+D — сравнить каталоги

ESC+C — быстро сменить каталог

alt-c -окно «Быстрая смена каталога»