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

Я только что побежал в эту же проблему. Добавление следующих строк на ~ / .hgrc разрешена проблема для меня:

[extensions]
hgext.hgk = 

, затем HGK был доступен с использованием команды HG View .

0
10.10.2015, 02:50
3 ответа

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

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

Шаг 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
1
28.01.2020, 02:27

Поскольку есть только расширения ".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", так что оно будет сохранено.

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

1
28.01.2020, 02:27

Что-то вроде этого может сработать. Он очень грубый, но переместит ваши вещи с помощью 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
1
28.01.2020, 02:27

Теги

Похожие вопросы