В GNU tar
или bsdtar
вы можете использовать:
tar tvf file.tar | grep -c '^d'
Как GNU tar
, так и bsdtar
указывают тип файла в качестве первого символа в строке вывода длинного списка(tv
)аналогично ls -l
и отображают новые строки в именах файлов как \n
, так что это все еще работает, если имена членов архива содержат символ новой строки.
Это надежнее, чем поиск завершающих /
символов, как говорит @schily, наличие которых не гарантируется .
Для POSIX можно использовать:
pax -o listopt=%.1M < file.tar | grep -cx d
Хотя это -o listopt
поддерживается не всеми pax
реализациями, в частности неhttp://www.mirbsd.org/pax.htmpax, найденным в Ubuntu.
pax -v < file.tar | grep -c '^d'
будет более переносимым, но может привести к сбою с именами файлов, содержащими символы новой строки.
/var
монтируется под /
, корневой файловой системой. Вы можете создать отдельный раздел (или рабочий LVM )и смонтировать, например, /var/lib/docker в отдельный раздел или логический том. Отделяя каталоги от корневой файловой системы, ваша операционная система остается отзывчивой и удобной в сопровождении, а с LVM вы намного более гибки. Возможно, это поможет понять структуру корневого каталога :https://www.howtogeek.com/117435/htg-explains-the-linux-directory-structure-explained/