Что представляет собой "размер" символической ссылки в выводе ls?
Начну с примера:
$ ls -l dir1
total 4
-rw-r--r-- 4 maythux maythux 1650 2008-01-10 16:33 file
lrwxrwxrwx 1 maythux maythux 7 2008-01-15 15:17 symfile -> file
symfile
символическая ссылка на файл file
Также как я знаю 1650
будет размер файла file
, но каково число 7
что заложено под размер столбца?
РЕДАКТИРОВАТЬ: Бег du
:
$ du -sh symfile
0 symfile
Так как вы можете доказать, что 7 - это размер символической ссылки?!
ОБНОВИТЬ:
попробуй это
$ touch file
$ du -sh file
0 file
$ ls -l file
-rw-rw-r-- 1 maythux maythux 0 Jun 1 19:42 file
обратите внимание, что размер также здесь 0.
Сейчас:
$ ln -s file sym
$ du -sh sym
0 sym
$ ls -l sym
lrwxrwxrwx 1 maythux maythux 4 Jun 1 19:44 sym -> file
Итак, я полагаю, это не только размер
3 ответа
Символические ссылки занимают место, необходимое для хранения имени и цели, а также несколько байтов для других метаданных.
Так что это размер символической ссылки.
Что касается размера от du -sh
: du
только смотрит на то, сколько блоков выделено, и поэтому может показывать 0.stat
а также ls -l
лучше показывать размер в этом отношении.
Это размер символической ссылки в байтах.
Некоторые файловые системы имеют небольшую область внутри записи каталога, которая используется для начала файла, что значительно ускоряет обработку символических ссылок и небольших операций чтения (подумайте file
) за счет больших записей каталога.
Если все содержимое символической ссылки помещается в запись каталога, то блоки данных не выделяются, и du
размер показывает как ноль. Если символическая ссылка не подходит, пространство распределяется нормально (так что в итоге вы выделяете один блок), что может быть оптимизировано файловой системой с помощью хвостового слияния (но API для du
знать об этом).
ext4
Файловая система выполняет эту оптимизацию только для символических ссылок, критерии находятся в функции ext4_inode_is_fast_symlink.
Это размер файла символической ссылки в байтах.
Файл символической ссылки - это обычный файл, в котором хранятся данные о том, где находится файл, на который он указывает. В ext 4 это 7 байтов.