Почему этот perl-скрипт дает результаты, отличные от git -для -подсистемы Windows и подсистемы Windows для Linux?

Единственный метод, который работает корректно во всех случаях, — это использоватьstar -find:

star -t -v -f file.tar -find -type d | wc -l

работает во всех случаях, даже если имена каталогов не заканчиваются косой чертой. Грязный трюк с добавлением косой черты к именам каталогов был введен примерно в 1980 году, когда формат tar еще не знал о типе файла «каталог». POSIX не требует этого, и существуют реализации tar, которые не добавляют косую черту к именам каталогов.

Обратите внимание, что вам может понадобиться grep для '^ 0 d', чтобы убедиться, что вы учитываете только начало реальных строк списка в случае, если пути содержат символы новой строки, или с помощью:

star -t -f file.tar -find -type d -print0 -false

, а затем подсчитать количество нулевых символов в выводе, например, путем передачи вывода в:

LC_ALL=C tr -cd '\0' | wc -c
0
14.06.2020, 00:24
0 ответов

Теги

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