Соль объединяется с хэшем при создании дайджеста, который хранится на устройстве. Хэши будут одинаковыми (для данного содержимого), поэтому соль - это способ сделать дайджест другим.
Когда выполняется dm-verity
, он сравнивает со списками хэшей, поэтому соль нужна, чтобы сопоставить хэши с дайджестами, которые были сохранены.
Дальнейшее чтение:
dm-verity
Вы можете использовать:find. -exec sh -c './correct.sh {}' \;
!
С correct.sh в том же каталоге, где вы запускаете указанную выше команду:
#!/bin/bash
mv "$1" $(echo "$1" | sed 's/_-_/_/g');
(Не забудьте chmod +x correct.sh
!)
Это не очень элегантное решение, но оно работает. Все говорит само за себя, за исключением, может быть, -exec
, который является опцией find
, который будет выполняться для каждого имени файлов, процесса, упомянутого здесь (sh -c '...'
), и заменить {} на имя файла! См. найти справочные страницы для получения дополнительной информации.
Если вы хотите переименовать только каталог файлов, вставьте -type d
в качестве опции поиска. И, конечно же,вы можете изменить столько, сколько хотите, sed, чтобы заменить то, что вы хотите.
Сzsh
:
$ autoload zmv
$ zmv -n '(**/)(*)' '$1${${${2//[^.[:alnum:]]##/_}##_#}%%_#}'
mv -- TWENTY_ONE_PILOTS_-_DISCOGRAPHY_\(2009-15\)_CHANNEL_NEO\] TWENTY_ONE_PILOTS_DISCOGRAPHY_2009_15_CHANNEL_NEO
Преобразует все последовательности символов, кроме alnums и .
, в _
, а затем рекурсивно удаляет начальные и конечные _
во всех файлах и каталогах.
-n
для пробного прогона , удалите его, когда все будет хорошо.
Если вы хотите переименовать только файлы типа каталог , измените (**/)(*)
на(**/)(*)(#q/)