Действительно ли символические ссылки влияют на использование диска?

Я читал на многих сайтах, которые в Linux символические ссылки (софт-ссылки, символические ссылки) – это как указатели, которые ссылаются на другой файл, который может быть расположен где угодно (например, ярлыки Windows). Однако, когда я проверяю использование диска в папке, в которой есть символические ссылки, есть несоответствие между тем, что говорит мой файловый менеджер, и тем, что сообщает о нем. Однако, если я -L, --dereference; dereference all symbolic links du -L ( -L, --dereference; dereference all symbolic links с man-страницы), вывод du -L и размер, который мои отчеты о файловых менеджерах одинаковы .

Мой вопрос : если у меня есть программная ссылка на большой файл, например, на мой отдельный home раздел, будут ли у меня проблемы?

Пример :

Папка My /var/tmp теперь пуста. Давайте создадим файл:

 $ cat /some/file.txt > file.txt $ du -ac 164 ./file.txt 168 . 168 total 

И мой файловый менеджер (Thunar, в данном случае) сообщает

Размер: 1 элемент, общая сумма 163,0 kB

Отлично. Теперь давайте создадим действительно большой файл в /tmp и символическую ссылку на него:

 $ cat /dir/really_big.txt > /tmp/heavy.txt $ du -a | grep heavy.txt 408 ./heavy.txt $ ln -s /tmp/heavy.txt heavy.txt $ du -ac 164 ./file.txt 0 ./heavy.txt 168 . 168 total 

Сейчас все в порядке. Но если я открою свой файловый менеджер:

Размер: 2 шт., Всего 570,3 кБ

И наконец:

 $ du -acL 164 ./file.txt 408 ./heavy.txt 576 . 576 total 

Если раздел, в котором находится /var/tmp , находится 1 GiB большой, и я создаю ссылку в нем в 1 файл GiB, ¿мой диск будет умирать? Я знаю, что du выпустит 168 и Thunar 1 GiB, но я не знаю, что правильно.

2 Solutions collect form web for “Действительно ли символические ссылки влияют на использование диска?”

Разумеется, символические ссылки занимают место, но просто комната, требуемая для хранения имени и цели плюс несколько байтов для других метаданных. Пространство, занимаемое символической ссылкой, не зависит от пространства, которое занимает цель (в конце концов, цель даже не требуется).

Plain du сообщает пространство, занимаемое деревом каталогов на диске. du -L сообщает пространство, которое будет принято деревом каталогов, если бы все символические ссылки были заменены их целью. Первый, как правило, полезная информация; например, это место, которое вы восстановите, если вы удалите дерево, и это (приблизительно) пространство, необходимое для резервного копирования дерева.

du в дереве каталогов показывает (обычно) немного больше, чем общее количество файлов. Это связано с двумя вещами. Во-первых, du также считает каталоги, которые занимают немного места для хранения имен файлов и метаданных. Во-вторых, du считает пространство на диске, взятое файлом, которое может отличаться от размера файла: наиболее распространенным эффектом является то, что файлы занимают целое число блоков (4 КБ при обычной установке Linux), поэтому 1-байтовый файл может отображаться как 4kB в du output; но сжатие (например, примитивная форма, предоставляемая разреженными файлами практически для каждой файловой системы unix) может сделать размер файла больше, чем его использование на диске.

Из числа, которое вы даете, оказывается, что Thunar сообщает сумму размеров файлов в дереве каталогов, следуя символическим ссылкам . Фактически это говорит тонким образом – он утверждает, что общий размер составляет 570,3 кБ, а не то, что использование диска составляет 570,3 кБ. То, что совершенно не очевидно из пользовательского интерфейса или документации, заключается в том, что Thunar следует за символическими ссылками при вычислении размера.

Какой из них «прав» – это субъективный вопрос. du сообщает об использовании диска. Thunar сообщает об общем размере следующих символических ссылок. Создание символической ссылки оказывает незначительное влияние на использование диска, но по определению изменяет ссылки общего размера после символических ссылок, которые сообщает Thunar.

Я думаю, что по умолчанию ваш файловый менеджер пытается получить размер файлов, на которые ссылаются мягкие ссылки, тогда как du дает вам размер самого каталога и самих программных ссылок, но не файлы, на которые они указывают.

Чтобы уточнить,

 `du` -> size of directory + size of all the softlinks `du -L` -> size of directory + size of all the files that the softlinks are pointing to. 

Я не уверен, что это то, о чем вы просили, но если да, то я считаю, что это может быть ответом на ваш вопрос.

  • Символ ссылки на разрешение каталогов запрещен
  • Git не перезаписывает символическую директорию при проверке филиала
  • Если я rm -rf символической ссылки будут данные, на которые указывает ссылка, чтобы получить стирание тоже?
  • проверьте, есть ли ссылка из текущего файла
  • Преобразование абсолютной символической ссылки в относительную символическую ссылку с помощью простой команды Linux
  • файл hardlink / softlink в один файл
  • Показать содержимое символической ссылки
  • Как заставить samba следовать символической ссылке за пределами общего пути
  • В Ubuntu есть ли способ практически объединить две папки без unionfs или aufs?
  • Как удалить все символические ссылки со специальной целью?
  • Как скопировать символические ссылки как символические ссылки с одной машины на другую?
  • Как подойти к планированию иерархии файловой системы файлового сервера BSD
  • Linux и Unix - лучшая ОС в мире.