«Размер каталога», напечатанный с помощью ls -l
, является (как и для любого типа файла) значением, сообщаемым stat ()
в statbuf.st_size
.
То, что этот st_size
означает для каталогов, полностью зависит от типа файловой системы. Если вы не знаете тип файловой системы и не понимаете его концепции, вы не сможете ничего вывести из значения в st_size
.
В исторической файловой системе UNIX, которая в настоящее время обычно называется v7-fs
, в каталогах повторялись 16-байтовые записи, содержащие 16-битный номер inode и 14 байтов имени файла. «Размер» каталога имел значение по отношению к операции read (2)
и всегда увеличивался или оставался неизменным. . Записи
и ..
создаются путем ручной жесткой привязки их к текущему и каталогу уровнем выше. Количество ссылок для нормального пустого девичьего каталога равно 2.
В BSD-4.2, которая с 1989 года (SVr4) называется ufs
, каталоги представляют собой серию записей переменной длины, которые используют формат, который не является стабильным, поэтому командам пользовательского пространства не разрешено читать этот формат. Сообщаемый "размер" - это размер в байтах, как в v7-fs, размер обычно увеличивается или остается неизменным,но более новые версии файловой системы могут уменьшать размер при некоторых условиях - но не всегда, когда вы этого можете ожидать. Счетчик ссылок для пустого каталога равен 2, как в v7-fs
.
В WOFS
, файловой системе, которую я разработал и реализовал в период с лета 1988 г. по май 1991 г., каталоги всегда сообщают «размер» 0 и никогда не имеют типа содержимого, которое может быть прочитано с помощью чтения . (2)
звонок. Это связано с тем, что WOFS
является первой файловой системой копирования при записи, и потому, что в файлы WOFS
сообщают каталог, в котором они находятся, а не перечисляются в каталоге. Если вы читаете каталог WOFS
с помощью readdir ()
, вы получаете данные только для предполагаемых записей, но никогда для .
и ..
. Счетчик ссылок пустого каталога на WOFS
равен 1, и все поведение полностью соответствует POSIX.
В ZFS
это было реализовано после прочтения статей WOFS
. ZFS
- это файловая система с копированием при записи, и ее авторы не отрицают, что они скопировали концепции из WOFS
. Каталоги в ZFS сообщают количество записей каталога
в st_size
, поэтому сообщаемый «размер» не имеет реального значения в отношении занятого дискового пространства из данных каталога. Нет .
и ..
записи в каталоге ZFS, но если вы вызываете readdir ()
, эти записи подделываются и возвращаются для первых двух операций.ZFS - единственная FS в списке, которая не поддерживает каталоги с жесткой связью, но сообщаемое количество ссылок для каталогов всегда равно 2. Эти два нарушения в ZFS реализованы для уменьшения путаницы в исторических программах, не относящихся к POSIX.
Подобно ZFS, WAFL копирует некоторые, но не все идеи из WOFS
. Netapp WAFL
был написан через 3 года после публикации статьи WOFS
, WAFL - это копирование при записи, но WAFL, похоже, сообщает значения «размера», которые могут быть «реальным размером каталога. "при условии, что в каталоге есть контент.
wiki.debian.org Тестирование Debian имеет специальные инструкции для gdm
apt-get --reinstall install gdm3
apt-get --reinstall install gnome
apt-get --reinstall install gnome-shell
dpkg-reconfigure gdm3
Возникла аналогичная проблема без запуска gnome при загрузке.
dmesg (для меня )показал segfault в оболочке gnome -из-за weyland.
Обновление файла daemon.conf в /etc/gdm3/ с параметром «WaylandEnable=false» устранило ошибку segfault и привело к запуску gnome (при загрузке )без дальнейших проблем.
https://askubuntu.com/questions/1059091/gnome-shell-error-showing-in-dmesg