Мне нужна команда, которая выводит список всех файлов в дереве каталогов. Столбцы должны быть: ха sh, индекс, имя файла.
Что-то вроде ls -iRAw2 и добавить столбец для ха sh.
У меня есть построить это решение, и результат почти то, что я хочу:
find testpath -type f -printf 'x%i %p\n' -exec sha1sum {} + \
|awk '{print $2,$1}' \
|sort \
|awk 'ORS=NR%2?" ":"\n"' \
|awk '{print $2,substr($4,2),$1}'
Единственная проблема заключается в том, что 'sort' obv. игнорирует пробелы и точки.
Печатный символ 'x' гарантирует, что сортировка всегда помещает строку ha sh перед строкой inode. Позже он удаляется с помощью subr.
Но мне не очень нравится решение. Это слишком сложно, не элегантно и использует awk. Я бы предпочел что-то, используя только внутренние bash команды.
Я искал решения для
'ls -i' and add a hash column somehow.
'find' as above and add a hash column.
'sha1sum' and add an inode column.
Но ничего не получилось. Что было бы более элегантным способом достижения желаемого результата?