Использование символических и жестких ссылок в Windows

Бывает часто необходимо проверить свободное место на диске через терминал, без утилиты df не обойтись. Она означает «Disk Free» — использование дискового пространства. Может выводит не только свободное место на диске, но и точку монтирования, список устройств, которые подключены к файловой системе.

Типы ссылок

В системах Linux/UNIX существует два типа ссылок:

  • Жесткие ссылки. Вы можете считать жесткую ссылку в качестве дополнительного имени для существующего файла. Жесткие ссылки связывают два или более имени файла с тем же inode. Вы можете создать одну или несколько жестких ссылок для одного файла. Жесткие ссылки не могут быть созданы для каталогов и файлов в другой файловой системе или разделе.
  • Мягкие ссылки. Soft link – это что-то вроде ярлыка в Windows. Это косвенный указатель на файл или каталог. В отличие от жесткой ссылки, символическая ссылка может указывать на файл или каталог на другой файловой системе или разделе.

Синтаксис

Рассмотрим синтаксис утилиты.

df параметры устройство

Посмотрим, что говорит справка —help.

Результат выполнения df —help

Основные параметры:

  • -a, —all. показать все файловые системы.
  • -h. Опция позволяет показать информацию более наглядной. Размеры выводятся в мегабайтах и гигабайтах.
  • -H. Размеры показываются в гигабайтах.
  • -k. Данная опция показывает на экране терминала размеры в килобайтах.
  • -t, —type. Выводит информацию только про указанную файловую систему.
  • —total. Опция показывает всю информация о дисковом пространстве.

Примеры

Для примера можно просто ввести df без аргументов.

Как видно на скриншоте выше, утилита показала в командной строке информацию о дисковом пространстве, однако выполнения команды в таком варианте есть один большой недостаток. Размеры выводятся в килобайтах (1K-blocks). Чтобы улучшить наглядность выполним:

df -h

Здесь видим:

Синтаксис
  • Filesystem — файловая система;
  • Size — размер в мегабайтах, показывается вся емкость точки монтирования;
  • Used — сколько использовано дискового пространства;
  • Avail — сколько осталось место в мегабайтах;
  • Use% — аналог столбца «Used», только информация выводится в процентах;
  • Monted on — точка монтирования.

Если не хватает места в какой-нибудь точке монтирования, то обычно используют символьные ссылки. В нашем примере в столбце «Use%» 100%  стоит /lib/live/mount/medium.

Символьная ссылка — это файл или каталог, который ссылается на другой файл или каталог.

Синтаксис для создания мягкой ссылки:

ln -s <источник> <название ссылки>

Также можно вывести размер одного конкретного диска.

df -h /dev/sr0

Следующий вариант использования утилиты — вывод информации только с файловой системой «udev».

df -t udev

Вместо udev можно написать etxt4 или любой другую Filesystem.

В итоге можно сказать, что утилита наиболее часто используется на серверах в командной строке, так как в графической оболочке очень много способов узнать объем свободного места без использования терминала.

Немного о сетевых утилитах

Для проверки работоспособности сети и сетевого соединения используется команда ping, она работает так же, как и в Windows, разница только в некоторых ключах. Например, в Windows для "пинга" пакетами по 1500 байт используется ключ -l (Length) ping localhost -l 1500, в *NIX это будет ключ -s (Size) ping localhost -s 1500 и еще несколько ключей.

Еще есть ключ -A, который позволяет отправлять запросы намного быстрее (примерно пять раз в секунду, против одного в Windows), а в паре с sudo может "выстрелить" и около 1000 пакетов за то же время!

Также есть ключ -f Используйте его с осторожностью, так как он может "положить" слабый канал сети или "пингуемый" хост (ПК)! В этом режиме утилита не ждет ответа, а продолжает слать пакеты (около 4 тысяч в секунду), генерируя через сетевую карту компьютера очень большой трафик. Так как вывод терминала просто не успевает за отображением такого мощного "пинга", то на монитор ничего выводиться и не будет. В случае же потери пакета, будут отображаться точки: один потерянный пакет = одна точка.

Читайте также:  Как разархивировать файл Rar. Программы, открывающие файл Rar

Ради эксперимента я "пинганул" свой роутер таким образом 🙂 Входящий и исходящий трафик повысился на ~10Mbps при значении в 1500 и на ~2Mbps при размере и частоте передаваемых пакетов по умолчанию (64B).

Чтобы проверить работу DNS (Domain Name System — системы доменных имен) используется утилита nslookup. Синтаксис у нее такой же, как и в Windows. Например, чтобы узнать какие IP адреса используются для домена , достаточно написать в терминале nslookup и мы получим IP или список IP адресов, которые отвечают за это доменное имя в глобальной сети Интернет.

Для проверки пути следования пакетов по сети используется другая утилита — traceroute (в windows — tracert). Например, чтобы передать данные от моего компьютера до этого сайта пишем traceroute На мониторе отобразится весь "путь", которым пройдут наши данные до сайта. Это называется трассировкой маршрута.

root @CoolServ:/home/asus/# traceroute traceroute to (), 30 hops max, 60 byte packets

1 () ms ms ms 2 () ms ms ms 3 () ms ms ms 4 () ms ms ms 5 () ms ms ms 6 () ms ms ms Немного расшифруем: расстояние до сайта составило 6 хопов (прыжков или 6 роутеров (маршрутизаторов) по пути следования) наших пакетов.

Что такое символическая ссылка?

Символическая ссылка подобна ярлыку из одного файла в другой. Содержимое символической ссылки — это адрес файла или папки, на которую идет ссылка.

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

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

Создать символическую ссылку

Чтобы создать символическую ссылку, используйте следующий синтаксис :

ln -s / path / to / file / path / to / link

Если вас беспокоит перезапись существующей ссылки, используйте ключ -b следующим образом:

ln -s -b / path / to / file / path / to / link

Этот переключатель создает резервную копию ссылки, если она существует. Он создает то же имя файла, но с тильдой в конце. Если файл существует с тем же именем, что и символическая ссылка, вы получите сообщение об ошибке.

Заставьте ссылку перезаписать файл, используя следующую команду:

ln -s -f / path / to / file / path / to / link

Не используйте ключ -f без ключа -b , так как вы потеряете оригинальный файл.

Получите сообщение с вопросом, хотите ли вы перезаписать файл, если он существует:

ln -s -i / path / to / file / path / to / link

Большинство современных приложений для просмотра файлов в Linux позволяют создавать символические ссылки с помощью графического интерфейса. Например, используя Thunar File Manager, в любой папке щелкните правой кнопкой мыши пустую область списка файлов и выберите « Создать символическую ссылку» .

Эта команда создает то, что выглядит как новая папка. На самом деле это символическая ссылка, указывающая на папку, в которой вы ее создали. Вставьте эту символическую ссылку куда угодно, и когда вы откроете ее, она всегда откроет исходную папку, в которой вы ее создали.

Симлинки против псевдонимов в macOS

Если вы когда-либо создавали псевдонимы в macOS, вы заметите, что они ведут себя почти как символические ссылки. Оба типа ссылок ссылаются на путь к связанному файлу или папке.

Читайте также:  Команда Tee в Linux с примерами

Разница в том, что псевдоним также помечает связанный объект с идентификатором, называемым inode (индексный узел). Этот идентификатор уникален для объекта и следует за ним по всей файловой системе.

Вот почему псевдоним будет работать нормально, даже если вы переместите его цель в другое место. Попробуйте это с символической ссылкой, и вы столкнетесь с ошибкой. (Вы можете без проблем перемещать псевдоним и символическую ссылку, если только вы не имеете дело с файлами, защищенными системой.)

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

Не можете определить разницу между псевдонимом и символической ссылкой, поскольку вы удалили тег псевдонима из имени файла псевдонима?

Откройте инспектор файлов или панель «Информация» для каждого ярлыка и посмотрите размер файла в разделе «Общие». Если это говорит (ноль байтов на диске), вы имеете дело с символической ссылкой.

Симлинки против псевдонимов в macOS

Символьные ссылки (в текущей папке) также проявятся при использовании этой команды терминала:

ls -la

Команда работает и в Linux, и вы увидите символическую ссылку, указывающую на местоположение исходного объекта.

Симлинки лучше, чем ярлыки

Поначалу символические ссылки могут показаться запутанными, но если вы потратите время на их понимание, вы поймете, что в конце концов их довольно просто использовать!

Как можно применить символические ссылки?

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

Таким образом можно перемещать и синхронизировать объемные папки под видом символических ссылок в хранилища или перемещать программы с основного компьютера на виртуальную машину, без установки, траты места и с сохранением работоспособности утилиты. Это позволяет редактировать, работать или изменять структуру данных с виртуальной машины, синхронизировано с данными на реальном носителе ПК, при этом не открывая доступ с виртуальной машины на реальный компьютер.

Для примера, попробуем создать символическую ссылку на программу для восстановления данных RS Partition Recovery, чтобы сэкономить место, перенести её на другой диск и в то же время не переустанавливать утилиту в корень папки на новом системном диске.

Важно! Функции символьных ссылок доступны с Windows Vista. Более старые версии ОС не поддерживают работу с ними, поскольку в их функционале присутствует возможность создания только жестких и мягких (ярлыков) ссылок.

Процесс создания символической ссылки выглядит следующим образом:

Шаг 1. Работа с символическими ссылками происходит через стандартную утилиту Windows – «Командная строка». Нажимаем сочетание клавиш Win+R и в открывшемся окне вводим команду «cmd».

Шаг 2. В открывшемся окне вводим команду «mklink», при помощи которой можно получить описание функционала и возможные действия с символическими ссылками.

Шаг 3. Ознакомившись с ключами, попробуем создать символическую ссылку на каталог «C:\Program Files (x86)\Recovery Software\RS Partition Recovery 2.8» для этого нам потребуется ввести следующую команду «mklink /j «D:\recoverymk» «C:\Program Files (x86)\Recovery Software\RS Partition Recovery 2.8″».

Разберем подробнее каждый из пунктов команды.

  • Mklink – основная команда связанная для создания символьных ссылок, её прописывают в начале.
  • /j – ключ для создания символьный ссылки для каталога. Для создания файла следует использовать ключ /d. Для жесткой ссылки ключ /h.
  • “D:\recoverymk” – путь куда будет сохранена символьная ссылка на каталог.
  • «C:\Program Files (x86)\Recovery Software\RS Partition Recovery 2.8» – источник, откуда была создана символьная ссылка.

В нашем случае успешное создание символьной ссылки выглядит следующим образом:

Проверяем созданную ссылку и её работу в том месте, которое было указано при создании. В нашем случае это «D:\recoverymk».

Пробуем запустить утилиту через символическую ссылку.

Программа RS Partition Recovery (как и любые другие программы, архивы, игры и т.д) успешно заработала через символическую ссылку.

Также продемонстрируем наглядное пособие по созданию символической ссылки на конкретный файл. Для примера создадим символьную ссылку архива «карты», который расположен на диске C.

Для этого вводим «mklink /d «D:\карты» «C:\карты»»

В данном случае каждая часть команды отвечает за следующее:

  • Mklink – основная команда для работы с ссылками.
  • /d – ключ для создания символьных ссылок на конкретные файлы.
  • «D:\карты» – место куда будет создана символьная ссылка.
  • «C:\карты» – источник (оригинал) файла.

Важно! Для выполнения действий необходимо открыть командную строку от имени администратора. В противном случае утилита выдаст ошибку «Недостаточно прав».

Краткая информация о ссылках

Как связаться с Яном

Ян – один из наших наиболее популярных и плодовитых авторов. Ознакомьтесь со всеми статьями Яна (EN), опубликованными на сайте developerWorks. Вы можете найти контактные данные в профиле Яна и связаться с ним, а также с другими авторами и участниками ресурса My developerWorks.

Файлы и директории располагаются на устройстве хранения в виде набора блоков. Информация о файле (такая, как владелец файла, время последнего обращения к файлу, размер файла, права на чтение или запись, является ли элемент файлом или директорией) хранится в индексном дескрипторе inode. Номер inode, известный также как порядковый номер файла, является уникальным в пределах отдельной файловой системы. Запись каталога содержит имя файла (или директории), а также указатель на дескриптор inode, в котором хранится информация об этом файле (или директории).

Ссылки – это просто дополнительные записи каталога, позволяющие обращаться к файлам или директориям по нескольким именам. Жесткая ссылка – это запись каталога, указывающая на дескриптор inode, тогда как мягкая, или символическая ссылка – это запись каталога, указывающая на имя объекта с другим inode. Конкретные механизмы хранения дополнительных имен зависят как от типа файловой системы, так и от длины имени. Для символических ссылок также используется термин symlinks.

Жесткие ссылки можно создавать только для файлов, но не для директорий. Исключение составляют специальные записи каталогов, указывающие на саму директорию и на ее родительскую директорию (. и ..) и представляющие собой жесткие ссылки, необходимые для подсчета числа поддиректорий. Жесткие ссылки можно использовать только в пределах одной файловой системы, поскольку они являются указателями на дескрипторы inode, которые уникальны только в пределах отдельной файловой системы. Если файл имеет несколько жестких ссылок, то он удаляется только тогда, когда удаляется последняя ссылка, указывающая на его inode, и счетчик ссылок сбрасывается до 0.

Мягкая ссылка (symlink) просто указывает на имя другого файла или директории, а не на его inode. В отличие от жестких ссылок, мягкие ссылки могут указывать на объекты разных файловых систем. Удаление мягкой ссылки не приводит к удалению файла или директории, на которую она указывает, а удаление целевого объекта не приводит к автоматическому удалению мягких ссылок.

Справочная информация

  • man command – показать ман-страницу для command
  • info command — показать info-страницу для command
  • whatis command – поиск man-страницы для command и отображение информации об имени из соответствующей man-странице
  • apropos command — поиск по ключевым словам в man-страниц и выводит те, которые содержат command(по существу, это аналог команды man -k, где ключ k — указывает на поиск в руководстве по ключевому слову)
    • editor — отобразит имеющиеся в системе текстовые редакторы