Скрипт для копирования файлов из папки и добавления md5sum в новое имя файла

Я хотел бы знать, возможно ли это:

У меня есть большое количество файлов .mov в папке. Я хотел бы знать, могу ли я копировать файлы в отдельную папку, но включать md5sum в новые имена файлов, после фактического имени, но до расширения файла. Так, например, если один раз из файлов был назван johnnycash.mov я бы хотел, чтобы он выглядел примерно так: johnnycash_8cbda72b2ce62f4a69a0b454ccccbe4.mov

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

Ура!

3 Solutions collect form web for “Скрипт для копирования файлов из папки и добавления md5sum в новое имя файла”

Вероятно, эта проблема лучше всего подходит в два этапа:

  1. Скопируйте файлы в новую папку
  2. Переименуйте их в соответствии с их md5sums

Шаг 1 легко:

 cp -r folder_with_movs new_folder 

Шаг 2 требует немного скриптов:

 cd new_folder for i in *.mov; do bn="${i%.*}" ext="${i##*.}" md5=$(md5sum "$i" | awk '{ print $1 }') mv -v "$i" "${bn}_${md5}.${ext}" done 

Поскольку есть только расширения «.mov», это делает его несколько проще, чем ловить все возможные расширения:

 for file in *.mov; do SUM=$(md5sum "$file" | awk '{print $1}') cp "$file" <destination>/$(echo "$file" | sed -e "s/.mov/_${SUM}.mov/") done 

Сделайте цикл над всеми файлами mov.

Вычислите md5sum, возьмите только первый столбец из вывода (этот запрос awk всегда пригодится, теперь вы его видели)

Скопируйте файл в новый пункт назначения при выполнении некоторого переименования: sed обменивает суффикс «.mov» со строкой «_», затем md5sum, а затем расширение «.mov», поэтому оно будет сохранено.

Имейте в виду пробелы в именах файлов (лучше избегайте их).

Это может сработать. Его очень грубая но будет перемещать ваши вещи с md5sum по имени файла ..

 #!/bin/bash CURRENTDIRECTORY=xxx NEWDIRECTORY=xxx for i in `ls $CURRENTDIRECTORY`; do if [ -f $i ]; then md5=`md5sum $i | awk '{print $1}'` name=$md5-$i cp $i $NEWDIRECTORY/$name fi done 
  • Сравните путь с домашним пользователем и определите, является ли первый каталог «.nvm»
  • Преобразование координат GPS с помощью сценария bash
  • Процесс проверки и уничтожения пользователя перед удалением
  • Потенциальные проблемы (если они есть) при рекурсивной замене пробелов символами подчеркивания во всех именах файлов на жестком диске
  • Извлечь текст из одной итерации сверху
  • Как называется переменная окружения (?) С текущей шириной терминала?
  • Невозможно выполнить сценарий Bash, если / while
  • Извлечение символов после определенного текста
  • Поиск файлов с использованием сценария оболочки
  • grep переменная в выражении if
  • Извлечение каталога из stdout из wget
  • Linux и Unix - лучшая ОС в мире.