Как переименовать все файлы в текущем каталоге в их sha1sum

find . -maxdepth 1 -type f| xargs sha1sum | sed 's/^\(\w*\)\s*\(.*\)/\2 \1/' | while read LINE; do mv $LINE; done


Данная команда выполняет переименование всех файлов в текущем каталоге в их SHA1-хэш.

Сначала команда «find . -maxdepth 1 -type f» используется для поиска всех файлов в текущем каталоге без учета подкаталогов. Затем команда «xargs sha1sum» вычисляет хэш-сумму SHA1 для каждого найденного файла.

Затем команда «sed ‘s/^\(\w*\)\s*\(.*\)/\2 \1/'» форматирует вывод sha1sum, чтобы каждая строка содержала сначала имя файла, а затем его хэш.

Далее, с использованием конструкции «while read line; do mv $line; done», каждая строка из форматированного вывода передается в команду «mv», которая выполняет переименование файла в его SHA1-хэш.

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

Аргументы команды:
— «.»: текущий каталог
— «-maxdepth 1»: ограничение поиска только в текущем каталоге
— «-type f»: поиск только файлов

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *