Как удалить символьную ссылку linux


Как удалить символические ссылки в Linux

Символическая ссылка, также известная как symlink, представляет собой специальный тип файла, который указывает на другой файл или каталог. Это что-то вроде ярлыка в Windows. Символьная ссылка может указывать на файл или каталог в той же или другой файловой системе или разделе.

В этой статье мы покажем вам , как удалить символические ссылки в системах Linux/UNIX с помощью команд rm, unlink и find.

 

Чтобы удалить символическую ссылку, вам необходимо иметь права на запись в каталог, содержащий символическую ссылку. В противном случае вы получите ошибку «Operation not permitted».

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

Используйте команду ls -l, чтобы проверить, является ли данный файл символической ссылкой, и найти файл или каталог, на который указывает символическая ссылка.

ls -l /usr/bin/python

 

lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7

Первый символ «l» указывает, что файл является символической ссылкой. Символ «->» показывает файл, на который указывает символическая ссылка.

 

Команда rm удаляет указанные файлы и каталоги.

Чтобы удалить символическую ссылку, вызовите команду rm с символическим именем ссылки в качестве аргумента:

rm symlink_name

 

В случае успеха команда завершается с нуля и не выводит никаких данных.

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

rm symlink1 symlink2

 

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

rm -i symlink_name

 

Для подтверждения нажмите клавишу y и нажмите Enter.

rm: remove symbolic link 'symlink_name'?

 

Если символическая ссылка указывает на каталог, не добавляйте косую черту / в конце. В противном случае вы получите ошибку:

rm symlink_to_dir/

 

rm: cannot remove 'symlink_to_dir/': Is a directory

 

Если имя аргумента заканчивается на /, команда rm предполагает, что файл является каталогом. Ошибка возникает из-за того, что при использовании без опции -d или -r rm yt удалит каталоги.

Чтобы быть в безопасности, никогда не используйте вариант -r при удалении символических ссылок с командой rm. Например, если вы введете:

rm -f symlink_to_dir/

 

Содержимое целевого каталога будет удалено.

 

Команда unlink удаляет данный файл. В отличие от rm, unlink принимает только один аргумент.

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

unlink symlink_name

 

Если команда выполняется успешно, она не отобразит вывод.

Не добавляйте косую черту / в конце имени символической ссылки, потому что unlink не может удалить каталоги.

 

Если вы удалите или переместите исходный файл в другое место, символический файл останется висящим (сломанным).

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

find /path/to/directory -xtype l

 

/path/to/directory/symlink1
 /path/to/directory/subdir/symlink2

 

Команда выведет список всех неработающих ссылок в каталоге и его подкаталогах.

Если вы хотите исключить символические ссылки, содержащиеся в подкаталогах, передайте параметр -maxdepth 1 в find:

find /path/to/directory -maxdepth 1 -xtype l

 

/path/to/directory/symlink1

 

После того, как вы найдете нарушенные символические ссылки, вы можете вручную удалить их с помощью команд rm, unlink или использовать опцию -delete в команде find:

find /path/to/directory -xtype l -delete

 

Чтобы удалить символическую ссылку, используйте команду rm или unlink, за которой следует имя символической ссылки в качестве аргумента. При удалении символической ссылки, указывающей на каталог, не добавляйте косую черту к имени символической ссылки.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

🐧 Как удалить символические ссылки в Linux – IT is good

У вас может быть появиться задача создать или удалить символические ссылки в Linux.

Если да, знаете ли вы, как это сделать?

Вы уже сделали это? Вы знаете об этом что-либо?

Если да, то проблем нет. Если нет, не волнуйтесь, мы здесь, чтобы помочь вам в этом.

Это можно сделать с помощью команд rm и unlink.

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

Символическая ссылка, также известная как symlink или softlink, представляет собой специальный тип файла, который указывает на другой файл или каталог в Linux.

Это похоже чем-то на ярлык в Windows.

Она может указывать на файл или каталог в той же или другой файловой системе или разделе.

Обычно символические ссылки используются для связи библиотек.

Также они используются для связывания файлов журналов и папок на смонтированных общих папках NFS (Network File System).

Что за команда rm?

Команда rm используется для удаления файлов или каталогов.

Это очень опасная команда, так что будьте осторожны при каждом использовании команды rm.

Что за команда unlink?

Команда unlink используется для удаления указанного файла.

Она уже установлена, так как является частью GNU Gorutils.

1) Как удалить файлы символьных ссылок с помощью команды rm

Команда rm является одной из наиболее часто используемых команд в Linux.

Кроме того, она позволяет нам удалить символические ссылки, как описано ниже.

# rm symlinkfile

Всегда используйте команду rm с ключом -i, чтобы понять, что делается.

# rm -i symlinkfile1
 rm: remove symbolic link ‘symlinkfile1’? y

Она также позволяет нам удалить несколько символических ссылок одновременно.

# rm -i symlinkfile2 symlinkfile3
 
 rm: remove symbolic link ‘symlinkfile2’? y
 rm: remove symbolic link ‘symlinkfile3’? y

2) Как удалить символические ссылки с помощью команды unlink

Команда unlink удаляет данный файл.

Она принимает только один файл за раз.

Удалить файл символьной ссылки

Удалить символьную ссылку на каталог

Если вы добавите завершающий слеш «/» в конце, вы не сможете удалить каталог символьных ссылок с помощью команды unlink.

# unlink symlinkdir3/
 
 unlink: cannot unlink ‘symlinkdir3/’: Not a directory

Поделитесь статьей:

Создание ссылок и удаление файлов | xnix

В этой статье рассмотрены жесткие (hardlinks) и символьные или символические (softlinks) ссылки, а также разобрано удаление файлов и директорий с помощью команд rm и rmdir. Авторы: Daniel Robbins, Chris Houser, Aron Griffis. Взято на Хабре тут: http://habrahabr.ru/blogs/linux/99653/.

[Жесткие ссылки (hard links)]

Мы уже упоминали термин «ссылка», когда рассказывали о взаимоотношениях между директориями (их именами) и инодами (индексным номерами, лежащими в основе файловой системы, которых мы не замечаем). Вообще в Linux существует два типа ссылок. Тип, о котором мы уже говорили ранее, называется «жесткие ссылки». Каждый инод может иметь произвольное число жестких ссылок. Когда уничтожается последняя жесткая ссылка, и не одна программа не держит файл открытым, то Linux автоматически удаляет его. Новые жесткие ссылки можно создать воспользовавшись командой ln:

$ cd /tmp
$ touch firstlink
$ ln firstlink secondlink
$ ls -i firstlink secondlink


 15782 firstlink 15782 secondlink
 

Как видите, жесткие ссылки работают на уровне инодов, для указания конкретного файла. В Linux системах, для жестких ссылок есть несколько ограничений. В частности, можно создавать жесткие ссылки только на файлы, не на директории. Да-да, именно так; хотя "." и ".." являются созданными системой жесткими ссылками на директории, вам (даже от имени пользователя «root») не разрешается создавать любые свои собственные. Второе ограничение жестких ссылок состоит в том, что нельзя связать ими несколько файловых систем. Это значит, что у вас не получится создать жесткую ссылку с /usr/bin/bash на /bin/bash и если ваши директории / и /usr находятся в разных файловых системах (разделах — прим. пер.).

[Символьные ссылки (soft links)]

В практике, символьные ссылки (или символические, иногда «симлинки» — от англ.) используются гораздо чаще, чем жесткие. Симлинки — это файлы особого типа, которые ссылаются на другие файлы по имени, а не прямо по номеру инода. Они не спасают файлы от удаления; если файл, на который указывает ссылка, исчезает, то симлинк перестает работать, ломается.

Символические ссылки можно создать передав для ln опцию -s.

$ ln -s secondlink thirdlink
$ ls -l firstlink secondlink thirdlink


 -rw-rw-r-- 2 agriffis agriffis 0 Dec 31 19:08 firstlink
 -rw-rw-r-- 2 agriffis agriffis 0 Dec 31 19:08 secondlink
 lrwxrwxrwx 1 agriffis agriffis 10 Dec 31 19:39 thirdlink -> secondlink
 

В выводе ls -l символьные ссылки можно отличить тремя способами. Во-первых, обратите внимание на символ l в первой колонке. Во-вторых, размер символической ссылки равен количеству символов в ней (secondlink в нашем случае). В-третьих, последняя колонка в выводе показывает куда ведет ссылка с помощью интуитивного обозначения "->".

[Симлинки детально]

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

Предположим, что мы хотим создать ссылку в /tmp, которая указывает на /usr/local/bin. Нам следует набрать:

$ ln -s /usr/local/bin bin1
$ ls -l bin1


 lrwxrwxrwx 1 root root 14 Jan 1 15:42 bin1 -> /usr/local/bin
 

Либо, альтернативный вариант:

$ ln -s ../usr/local/bin bin2
$ ls -l bin2


 lrwxrwxrwx 1 root root 16 Jan 1 15:43 bin2 -> ../usr/local/bin
 

Как вы видите, обе символические ссылки указывают на одну директорию. Однако, если наша вторая символьная ссылка когда-нибудь будет перемещена в другую директорию, то она может «поломаться» из-за относительности пути:

$ ls -l bin2


 lrwxrwxrwx 1 root root 16 Jan 1 15:43 bin2 -> ../usr/local/bin
 

$ mkdir mynewdir
$ mv bin2 mynewdir
$ cd mynewdir
$ cd bin2
bash: cd: bin2: No such file or directory

Потому, что директории /tmp/usr/local/bin не существует, мы больше не можем переместиться в bin2; другими словами, bin2 сейчас сломана.

По этой причине, избегать создания ссылок с относительной информацией о пути, иногда будет хорошей идеей. Тем не менее, существует множество случаев, где относительные символические ссылки крайне удобны. Рассмотрим пример в котором мы хотим создать альтернативное имя для программы в /usr/bin:

# ls -l /usr/bin/keychain


 -rwxr-xr-x 1 root root 10150 Dec 12 20:09 /usr/bin/keychain
 

От имени суперпользователя мы хотим короткий синоним для keychain, такой, как kc. В этом примере у нас есть root-доступ, о чем свидетельствует измененное на "#" приветствие bash. Нам нужен root-доступ потому, что обычные пользователи не имеют прав создавать файлы в /usr/bin. От имени суперпользователя мы можем создать альтернативное имя для keychain следующим образом:

# cd /usr/bin
# ln -s /usr/bin/keychain kc
# ls -l keychain


 -rwxr-xr-x 1 root root 10150 Dec 12 20:09 /usr/bin/keychain
 

 # ls -l kc 
 

 lrwxrwxrwx 1 root root 17 Mar 27 17:44 kc -> /usr/bin/keychain
 

В этом примере мы создали символьную ссылку под названием kc, которая указывает на файл /usr/bin/keychain. Пока это решение будет работать, но создаст проблему, если мы решим переместить оба файла, /usr/bin/keychain и /usr/bin/kc в /usr/local/bin:

# mv /usr/bin/keychain /usr/bin/kc /usr/local/bin
# ls -l /usr/local/bin/keychain


 -rwxr-xr-x 1 root root 10150 Dec 12 20:09 /usr/local/bin/keychain
 

 # ls -l /usr/local/bin/kc
 

 lrwxrwxrwx 1 root root 17 Mar 27 17:44 kc -> /usr/bin/keychain
 

Поскольку мы использовали абсолютный путь для символической ссылки kc, то она все еще ссылается на /usr/bin/keychain, которого не существует с тех пор как мы переместили /usr/bin/keychain в /usr/local/bin.

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

# cd /usr/bin
# ln -s keychain kc
# ls -l kc


 lrwxrwxrwx 1 root root 8 Jan 5 12:40 kc -> keychain
 

# mv keychain kc /usr/local/bin
# ls -l /usr/local/bin/keychain

 -rwxr-xr-x 1 root root 10150 Dec 12 20:09 /usr/local/bin/keychain
 

# ls -l /usr/local/bin/kc

 lrwxrwxrwx 1 root root 17 Mar 27 17:44 kc -> keychain
 

Теперь, мы можем запустить программу keychain набрав /usr/local/bin/kc. /usr/local/bin/kc указывает на программу keychain в той же директории, где находится kc.

[rm]

Итак, мы знаем как использовать cp, mv и ln, настало время узнать о том, как можно удалять объекты из файловой системы. Обычно это делается с помощью команды rm. Чтобы удалить файлы, просто укажите их в командной строке:

$ cd /tmp
$ touch file1 file2
$ ls -l file1 file2


 -rw-r--r-- 1 root root 0 Jan 1 16:41 file1
 -rw-r--r-- 1 root root 0 Jan 1 16:41 file2
 


$ rm file1 file2
$ ls -l file1 file2
ls: file1: No such file or directory
ls: file2: No such file or directory

Имейте ввиду, что под Linux, однажды удаленный файл, обычно исчезает на века. Поэтому многие начинающие системные администраторы используют опцию -i, когда удаляют файлы. Опция -i сообщает rm удалять файлы в интерактивном режиме — это значит спрашивать перед удалением любого файла. Например:

$ rm -i file1 file2
rm: remove regular empty file `file1'? y
rm: remove regular empty file `file2'? y

В примере выше команда rm запрашивает подтверждение на удаление каждого из указанных файлов. В случае согласия, я должен был вводить «y» и нажать enter, дважды. Если бы я ввел «n», то файл бы остался цел. Или, если я сделал что-нибудь не так, я мог бы нажать Control-C и сбросить выполнение команды rm -i целиком — всяко до того, как это могло нанести какой-нибудь ущерб моей системе.

Если вы все еще учитесь пользоваться командой rm, то может быть полезным добавить при помощи вашего любимого текстового редактора следующую строку в ваш файл ~/.bashrc, и затем выйти (logout) и войти (login) в систему вновь. После этого, всякий раз, когда вы наберете rm, оболочка bash преобразует ее автоматически в команду rm -i. Таким образом, rm будет всегда работать в интерактивном режиме:

alias rm="rm -i"

[rmdir]

Для удаления директорий у вас имеется два варианта. Вы можете удалить все объекты внутри директории и затем воспользоваться rmdir для удаления самой директории:

$ mkdir mydir
$ touch mydir/file1
$ rm mydir/file1
$ rmdir mydir

Этот метод широко известен под названием «способ удаления директорий для лохов». Все реальные пацаны и админы-гуру съевшие пользователя собаку на этом деле, используют гораздо более удобную команду rm -rf, описанную далее.

Самый лучший способ удалить директорию состоит в использовании опций «рекурсивного принуждения» (recursive force) команды rm, чтобы приказать ей удалять указанную директорию, также как и объекты содержащиеся внутри:

$ rm -rf mydir

Обычно, rm -rf является наиболее предпочтительным методом для удаления древа директорий. Будьте очень осторожны, когда пользуетесь rm -rf, так как ее мощь может быть использована по обе стороны: добра и зла.

Создание, просмотр и удаление символьных (символических) ссылок в Linux

Cимвольная ссылка (также симлинк от англ. Symbolic link, символическая ссылка) — специальный файл в файловой системе, для которого не формируются никакие данные, кроме одной текстовой строки с указателем. Эта строка трактуется как путь к файлу, который должен быть открыт при попытке обратиться к данной ссылке (файлу). Символьная ссылка занимает ровно столько места в файловой системе, сколько требуется для записи её содержимого (нормальный файл занимает как минимум один блок раздела).

Целью ссылки может быть любой объект — например, другая ссылка, файл, папка, или даже несуществующий файл (в последнем случае при попытке открыть его должно выдаваться сообщение об отсутствии файла). Ссылка, указывающая на несуществующий файл, называется висячей. В отличие от жестких ссылок, символьные ссылки можно создавать и на каталоги.

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

Создание символьной ссылки

Символьную ссылку можно создать при помощи команды ln с ключом -s (от "symbolic"). В качестве первого параметра пишется абсолютный адрес и имя исходного файла, в качестве второго – адрес и имя ссылки. Например:

ln -s filename linkname # создаётся символьная ссылка (symbolic link)

ln -s filename linkname # создаётся символьная ссылка (symbolic link)

Просмотр символьной ссылки

Посмотреть, куда ведет символьная ссылка можно командой:

В результате выполнения команды в поле stat  будет показан символ l (link).

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

Удаление символьной ссылки

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

При удалении символьной ссылки на каталог следует учитывать, что записывать команду без слеша в конце, иначе bash выдаст ошибку "невозможно удалить ссылку: Это не каталог".

Корректная запись:

Другие интересные статьи:

| Ubuntu и Debian | Опубликовано: 03.06.2013 09:32 | 0

Как найти и удалить битые символические ссылки в Linux

Символические ссылки, еще называемые мягкими, существуют не только в Windows, но и в Linux. По сути, символическая ссылка в Linux представляет собой файл, который ссылается на другой файл (в Linux вообще все объекты являются файлами). Если файл будет удален, перемещен или переименован, указывающая на него символическая ссылка останется на диске, равно как и удаление символической ссылки не приведет к удалению файла.

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

Не будет ли лучшим их удалить? Особой трудности в Linux это не представляет, в той же Ubuntu символические ссылки легко идентифицируются по фиолетовому значку со стрелкой,

если же ссылка битая, то на нее «накладывается» еще один значок — крестик в красном кружке.

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

Если ссылка битая, ее название и название объекта, на который она ссылается, будут иметь красный цвет.

Поиск и удаление символических ссылок

Для поиска мягких ссылок в Linux очень удобно использовать команду find, точнее find . -type l, выводящую их список в текущем каталоге и всех вложенных в него папках.

При этом команда с данным набором параметров не различает рабочие и нерабочие ссылки, чтобы получить список только битых ссылок, вместо параметра type нужно использовать параметр  -xtype, вот так:

find . -xtype l

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

SUDO здесь не поможет, решить эту проблему можно сбросив все ошибки в /dev/null.

Добавьте к уже известной команде перенаправление:

find . -xtype l 2>/dev/null

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

Если всё же хотите их удалить, добавьте чрез пробел к указанной выше команде аргумент -delete.

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

В общем, если и удалять битые симлинки, то делать это нужно только в тех системных каталогах, назначение которых вам известно. Так, тест с удалением всех битых символических ссылок в Ubuntu 20.04, установленной на виртуальную машину VirtualBox, нарушило работу дополнений гостевой ОС, в результате чего в виртуальной системе оказалось доступным только разрешение VGA, составляющее всего 640x480 пикселей.

Что Такое Символическая Ссылка и Как Создать Симлинк в Linux

Команды Linux, связанные с символическими ссылками, прекрасно дополнят ваш инструментарий для работы в терминале. В этом руководстве мы рассмотрим несколько быстрых и простых команд. Но прежде чем мы начнём, давайте разберёмся, что же такое символическая ссылка.

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

Символические ссылки служат не только для создания ярлыков и управления файлами в операционной системе Linux. Они также создают место под основные пользовательские папки, такие как «Документы», «Изображения», «Загрузки» и другие. 

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

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

Функции Linux настолько удобны, что даже Microsoft перенял их практику создания символических ссылок. Однако символическая ссылка, также известная как мягкая ссылка, или симлинк, не является уникальным явлением, характерным исключительно Linux. Они напоминают поиск в Windows, когда для того, чтобы найти файл или каталог, пользователь выполняет различные команды.

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

Итак, давайте разберёмся, как создать символические ссылки на файлы и папки в Linux.

Символическая Ссылка Linux на Файлы

Обычно для создания ссылок мы используем команду ln и опцию -s, чтобы указать символическую ссылку. Это самый простой и гибкий способ, который позволяет максимально экспериментировать с языком. В создании символических ссылок в Linux нет ничего сложного — нужно просто выполнить один простой шаг.

ln -s [целевой_файл] [имя_символической_ссылки]

Команда ln в Linux создает ссылки между исходными файлами и каталогами.

  • -s — команда для символических ссылок.
  • [целевой файл] — имя существующего файла, для которого вы создаёте ссылку.
  • [имя символической ссылки] — эта часть команды объясняет сама себя.

Проверить создалась ли ссылка можно с помощью команды вывода подробного списка содержимого каталога:

ls -l
 
 

Однако, если вы не укажете [имя символической ссылки], команда автоматически создаст новую ссылку в существующем каталоге.

Символическая Ссылка Linux на Папки

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

ln -s [конкретный_файл/каталог] [имя_символической_ссылки] 

Допустим, мы хотим связать каталог /user/local/downloads/logo с каталогом /devisers, вот как будет выглядеть команда:

ln -s /user/local/downloads/logo /devisers

Созданная и прикреплённая к папке /devisers, символическая ссылка будет вести к /user/local/downloads/logo. Когда пользователь меняет каталог — cd — на /devisers, система автоматически переключается на определённый файл и записывает его в каталог команды.

Опции символических ссылок называются переключателями командной строки. Вот наиболее распространённые из них и их описания:

Переключатель Описание
–backup[=CONTROL] резервное копирование каждого существующего файла назначения
-d, -F, –directory суперпользователь может использовать жесткую ссылку
-f, –force удаляет существующий файл назначения
-I, –interactive спрашивает перед удалением файлов назначения
-L, –logical разыменовывает символические ссылки
-n, –non-dereference обрабатывает символическую ссылку как обычный файл, если это символическая ссылка на каталог
-P, –physical делает жесткие ссылки непосредственно на символические ссылки, а не разыменовывает их.
-r, –relative создаёт символические ссылки относительно расположения ссылок
-s, –symbol создаёт символические ссылки вместо жестких ссылок
-S, –suffix=SUFFIX переопределяет обычный суффикс резервных копий
-v, –verbose выводит имя каждого файла при создании ссылки

Как Изменить или Удалить Символическую Ссылку в Linux?

Вы можете удалить существующие ссылки, прикреплённые к файлам или каталогам, с помощью команды unlink или rm. Вот как вы можете сделать это с помощью команды unlink:

unlink [симлинк_для_удаления]

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

rm [имя_символической_ссылки]

Например:

rm simpleText

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

Итоги

Linux — замечательная платформа для разработки интерактивного и динамичного приложения, где вы можете экспериментировать и пробовать что-то новое. Но для этого вам нужна прочная база. Изучите основы языка, чтобы использовать весь потенциал платформы. 

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

Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.

Как создать символьную ссылку в Windows, Linux и MacOS

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

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

Давайте посмотрим, что такое символическая ссылка, как создать символическую ссылку в Linux, а также в macOS и Windows, зачем нужен этот специальный тип ярлыков и многое другое.

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

Это правда, что символическая ссылка является файлом ярлыка. Но он отличается от стандартного ярлыка, который, скажем, установщик программы разместил на рабочем столе Windows, чтобы упростить запуск программы.

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

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

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

Симлинки против стандартных ярлыков

Допустим, у вас есть определенная папка на жестком диске, которую вы хотите синхронизировать с Dropbox, не перемещая саму папку в Dropbox.

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

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

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

Зачем вам нужны ссылки?

В общем случае рекомендуется создавать символические ссылки вместо ярлыков, если вы хотите:

  • Доступ к файлу из нескольких мест без создания копий и не занимая много места на диске. (Символические ссылки имеют размер всего несколько байтов.)
  • Поддерживайте разные версии файла, одновременно следя за тем, чтобы любые указатели на него всегда приводили к самой последней или актуальной версии. (Это работает, потому что символическая ссылка остается активной, даже если вы заменяете целевой файл другим файлом с тем же именем.)
  • Переместите данные со своего диска C:\, скажем, на дополнительный жесткий диск, не нарушая работу системы или функций приложения, которым эти данные должны быть на диске C:\.

Скорее всего, вы встретите много других вариантов использования символических ссылок.

Как создать символические ссылки

Вы можете создавать программные ссылки, используя терминал или командную строку. Мы перейдем к инструментам «укажи и щелкни» позже, если тебе неудобно возиться с терминалом.

В Linux и MacOS

В Linux вы можете создать символическую ссылку для файла или папки с помощью этой команды терминала:

ln -s [/path/to/file] [/path/to/symlink]

Эта же команда работает и в macOS, поскольку macOS — это операционная система на основе UNIX, такая как Linux.

Смотрите скриншот выше для примера команды.

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

У популярного файлового менеджера Nautilus, поставляемого в комплекте с различными дистрибутивами Linux, была опция меню Make Link, которая теперь исчезла. Но вы все равно можете создать символическую ссылку в Nautilus, удерживая клавиши Ctrl и Shift и перетащив целевой файл в то место, где вы хотите, чтобы символическая ссылка отображалась. Не волнуйтесь, исходный файл останется на месте.

На винде

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

mklink [/path/to/symlink] [/path/to/file]

Для символических ссылок на каталоги вы должны немного настроить команду, используя флаг /d:

mklink /d [/path/to/symlink] [/path/to/file]

Если вы не хотите работать с командной строкой, вы можете использовать графический инструмент под названием Link Shell Extension для создания символических ссылок. Это одно из лучших расширений Windows File Explorer для управления файлами.

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

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

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

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

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

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

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

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

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

ls -la

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

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

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

Статьи по теме:

6.7 Создание и удаление ссылок в Linux

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

ln [-опция] [имя файла] [имя ссылки]

вариант:

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

Ссылки - также известные как дефисы - делятся на жесткие, которые создаются командой ln без опций, и мягкие, также называемые символическими, которые создаются командой ln с опцией -s .Отвязка выполняется командой rm . Разницу между жесткой ссылкой и символической ссылкой нельзя объяснить, не введя понятие индексного дескриптора, представляющего собой структуру, в которой ядро ​​хранит информацию о файле.

Команда ls , выполненная с параметром -i , позволяет узнать номер узла, которому принадлежит файл.

$ лс-ил

Простейшими из двух типов ссылок являются жесткие ссылки.Команда ln по умолчанию создает жесткие ссылки. Ниже представлена ​​схема создания жесткой ссылки. Сначала в текущем каталоге в командной строке введите команду:

$ лс –л

-rwx ------ 5 root root 1024 сен 10 12:30 file1

-rwx ------ 1 root root 56 сен 11 14:23 date_file

-rwx ------ 1 root root 67 сен 14 11:30 file2

-rwx ------ 1 root root 123 сен 10 12:30 файл данных

-rwx ------ 1 root root 123 сен 10 12:30 image_file

Затем в командной строке введите:

$ ln файл_дата_файл_файл

Затем повторяем:

$ лс –л

Количество метров увеличилось на один:

-rwx ------ 1 root root 24 сен 10 12:30 file1

-rwx ------ 2 root root 56 сен 11 14:23 date_file

-rwx ------ 1 root root 67 сен 14 11:30 file2

-rwx ------ 1 root root 123 сен 23 12:45 файл данных

-rwx ------ 1 root root 123 сен 24 12:56 image_file

- rwx ------ 2 root root 56 сен 25 14:23 link_file

Обратите внимание, что атрибуты, связанные со временем создания нового объекта file_link, остаются такими же, как атрибуты, связанные с файлом file_data, без учета текущего времени (так же, как и в операции копирования).Это связано с тем, что существует только один набор данных, хотя отныне он используется двумя способами (под двумя именами). Второй столбец слева показывает количество счетчиков файлов. Другой способ проверить, есть ли одни и те же данные под двумя разными именами файлов, — посмотреть на так называемый иноды. Каждый объект должен иметь свой индексный дескриптор, содержащий информацию о файлах. Читателю важно помнить, что так называемая жесткие ссылки не работают в разных файловых системах и всегда должны быть локальными, что означает, что пользователи могут ссылаться на файлы, но не на каталоги.

Ссылки на каталоги можно создавать с помощью т.н. символические ссылки: это разрешено опцией -s , командами ln.

$ лс –л

-rwx ------ 5 root root 1024 сен 10 12:30 file1

-rwx ------ 1 root root 56 сен 11 14:23 date_file

-rwx ------ 1 root root 67 сен 14 11:30 file2

-rwx ------ 1 root root 123 сен 10 12:30 файл данных

-rwx ------ 1 root root 123 сен 10 12:30 image_file

$ ln -s файл2 символ_файл

-rwx ------ 5 root root 1024 сен 10 12:30 file1

-rwx ------ 1 root root 56 сен 11 14:23 date_file

-rwx ------ 1 root root 67 сен 14 11:30 file2

-rwx ------ 1 root root 123 сен 10 12:30 файл данных

-rwx ------ 1 root root 123 сен 10 12:30 image_file

l rwxrwxrwx 1 root root 67 сен 10 12:30 symbol_file →

файл2

При анализе результата выполнения команды следует отметить, что:

→ количество ссылок на файл file2 не изменилось

→ в первом столбце нового файла (symbol_file) всегда будет строка l rwxrwxrwx, означающая ссылку

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

.

→ справа от имени файла есть графический указатель → файл, на который указывает ссылка

→ размер нового файла равен размеру только указателя

Другими словами, символ_файла — это символическое представление — имя — файла файл2. Многие системные файлы ссылаются на другие объекты. Например, в каталоге dev есть много символических ссылок на устройства, которые можно использовать с разными именами из разных мест.Какие функции может выполнять ссылка. Во-первых, он может заменить длинный полный путь к файлу на аббревиатуру из нескольких символов, например,

.

Курс Linux - создание и удаление ссылок в Linux (команда ln)

.

Как удалить символическую ссылку в Linux?

Как отключить символическую ссылку в Linux?

Чтобы удалить символическую ссылку, используйте команду rm или unlink, за которой следует имя символической ссылки в качестве аргумента. При удалении символической ссылки, указывающей на каталог, не добавляйте косую черту к имени символической ссылки.

Как удалить символическую ссылку, не удаляя файл в Linux?

Отв.: Как удалить символическую ссылку, не удаляя исходный файл. Оба ответа правильные. Просто введите «rm linkname», и символическая ссылка будет удалена. Если вы получите неработающую ссылку, вы удалите файл, а не саму ссылку.

Как отключить команду Linux?

Как удалить файлы. Вы можете использовать команду rm (удалить) или unlink, чтобы удалить или удалить файл из командной строки Linux. Команда rm позволяет удалить сразу несколько файлов. Вы можете удалить только один файл с помощью команды unlink.

Как отключить линк?

Чтобы удалить гиперссылку, но сохранить текст, щелкните гиперссылку правой кнопкой мыши и выберите Удалить гиперссылку. Чтобы полностью удалить гиперссылку, выберите ее и нажмите клавишу DELETE.

Как увидеть символические ссылки в Linux?

Для просмотра символических ссылок в каталоге:

  1. Откройте терминал и перейдите в этот каталог.
  2. Введите команду: ls -la. Это приведет к длинному списку всех файлов в каталоге, даже если они скрыты.
  3. Файлы, начинающиеся с l, являются файлами символических ссылок.

Какая польза от символической ссылки в Linux?

Символическая ссылка, также известная как программная ссылка, представляет собой файл особого типа, который указывает на другой файл, подобно ярлыку Windows или псевдониму Macintosh. В отличие от жесткой ссылки, символическая ссылка не содержит данных в целевом файле. Он просто указывает на другую запись где-то в файловой системе.

Что делает отключение в Linux?

unlink() удаляет имя из файловой системы. Если это имя было последней ссылкой на файл и ни один процесс не открывал файл, файл удаляется, а место, которое он использовал, становится доступным для повторного использования.

Как подключиться в Linux?

Чтобы создать символическую ссылку в Linux, используйте команду ln с параметром -s. Для получения дополнительной информации о команде ln посетите справочную страницу ln или введите man ln в своем терминале.Если у вас есть какие-либо вопросы или комментарии, пожалуйста, оставьте комментарий.

Как обновить символическую ссылку в Linux?

UNIX Символическая ссылка или советы по символической ссылке

  1. Используйте ln -nfs для обновления программной ссылки. …
  2. Используйте pwd в сочетании с программной ссылкой UNIX, чтобы найти фактический путь, на который указывает ваша программная ссылка. …
  3. Чтобы найти все программные и жесткие ссылки UNIX в любом каталоге, выполните следующую команду «ls -lrt | grep "^l"".

22 апреля 2011 г.

Как отключить команду в Unix?

В Unix-подобных операционных системах unlink — это системный вызов и инструмент командной строки для удаления файлов. Программа напрямую подключается к системному вызову, который удаляет имя файла и (но не в системах GNU) каталоги, такие как rm и rmdir.
...
Отключение (Unix)

Операционная система UNIX и похоже на Unix
платформы кроссплатформы
тип команда

Какая команда используется для изменения прав доступа к файлам и каталогам?

Команда chmod позволяет изменить права доступа к файлу.Вы должны быть суперпользователем или владельцем файла или каталога, чтобы изменить его разрешения.

Как удалить ссылку из Google?

Войдите в свою учетную запись Google Search Console. Выберите подходящее свойство. Нажмите кнопку «Удаления» в меню в правой колонке. Выберите «Удалить только этот URL-адрес», введите URL-адрес, который вы хотите удалить, и нажмите «Далее».

Как удалить ссылку, скопированную на Android?

(3) Отобразится список скопированного содержимого буфера обмена.Нажмите значок меню (три точки или стрелку) в правом углу текстовой области. (4) Выберите значок «Удалить», доступный внизу, чтобы удалить все содержимое буфера обмена. (5) Во всплывающем окне нажмите «Удалить», чтобы очистить все непроверенное содержимое буфера обмена.

Как удалить ссылку из Google Chrome?

6 ответов

  1. Введите часть URL-адреса, чтобы он отображался в ваших предложениях.
  2. Используйте клавиши со стрелками, чтобы перейти к нему.
  3. Нажмите Shift + Delete (для Mac нажмите fn + Shift + delete), чтобы удалить ссылку.
.

Как отредактировать символическую ссылку в Linux?

Как изменить символическую ссылку?

Символическая ссылка UNIX или советы по символической ссылке

  1. Используйте ln -nfs для обновления программной ссылки. …
  2. Используйте pwd в сочетании с программной ссылкой UNIX, чтобы найти фактический путь, на который указывает ваша программная ссылка. …
  3. Чтобы найти все программные и жесткие ссылки UNIX в любом каталоге, выполните следующую команду «ls -lrt | grep "^l"".

Можно ли редактировать файл символической ссылки?

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

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

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

Как найти символические ссылки в Linux?

Для просмотра символических ссылок в каталоге:

  1. Откройте терминал и перейдите в этот каталог.
  2. Введите команду: ls -la. Это приведет к длинному списку всех файлов в каталоге, даже если они скрыты.
  3. Файлы, начинающиеся с l, являются файлами символических ссылок.

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

Чтобы удалить символическую ссылку, используйте команду rm или unlink, за которой следует имя символической ссылки в качестве аргумента . При удалении символической ссылки, указывающей на каталог, не добавляйте косую черту к имени символической ссылки.

Как заменить символическую ссылку?

Перезапись символических ссылок

Если вы попытаетесь создать уже существующую символическую ссылку, ln отобразит сообщение об ошибке.Чтобы перезаписать целевой путь символической ссылки, используйте параметр -f (–force) .

Почему нет жестких ссылок на каталоги?

Причина, по которой жесткие каталоги связаны: не разрешено немного технический. Они в основном нарушают структуру файловой системы. В принципе, вы все равно не должны использовать жесткие ссылки. Символические ссылки позволяют выполнять большинство тех же функций, не вызывая проблем (например, ln -s target link).

Зачем нам символическая ссылка?

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

Что произойдет, если удалить символическую ссылку?

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

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

Символическая ссылка, также известная как программная ссылка, представляет собой файл специального типа , который указывает на другой файл , аналогичный ярлыку Windows или псевдониму Macintosh. В отличие от жесткой ссылки, символическая ссылка не содержит данных в целевом файле. Он просто указывает на другую запись где-то в файловой системе.

.

Zespół Szkół - Ссылки на файлы

Жесткие ссылки . Жесткая ссылка — это создание нового имени для существующего файла. Если мы представим файл как его имя и данные, на которые он указывает, мы можем сказать, что жесткая ссылка создает новое имя, указывающее на те же данные. Эта команда аналогична копированию файла, за исключением того, что при копировании создается независимая копия файла, а при создании жесткой ссылки создается только новое имя, указывающее на тот же существующий файл.Используйте команду ln для создания жестких ссылок. Мы используем его следующим образом:

ln link_destination link

где:

link_mark — файл, на который мы хотим связать

ссылка - дополнительная, равнозначная имени файла

$ ln /home/aaa/file.txt /home/aaa/dowiazania/text.txt

цель ссылки - /home/aaa/file.txt

ссылка - /home/aaa/dowiazania/text.txt

Эта команда создаст текстовый файл в каталоге «links».txt», который будет являться ссылкой на файл «file.txt» в каталоге andrzej. Таким образом мы дали файлу новое имя, равное старому. Оба файла имеют одинаковое (указывающее на одно и то же) содержимое

Количество ссылок на файлы можно проверить, выполнив команду ls -l, которая перечисляет содержимое каталога, задавая некоторые параметры файлов в нем

$ ls -l или ls -la

Чтобы удалить файл, удалите все ссылки на него.Файл удаляется, когда удаляется последняя жесткая ссылка (имя).

Если мы не дадим ссылку, указав только цель ссылки, ссылка будет создана в каталоге, в котором мы находимся в данный момент. Ссылка будет иметь то же имя, что и исходная ссылка.

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

ln файл1 файл2 - создает файл2 как ссылку на файл1

ln file1 Directory - создает ссылку в Directory на file1 с тем же именем, что и file1

ln файл1 - создает ссылку с тем же именем, что и файл1 в каталоге, где он выпущен

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

Например, ln -s файл1 файл2 сделает файл2 символической ссылкой на файл1.

Вы можете сравнить символические ссылки с ярлыками в Windows.

$ln -s ~/aaa/file.txt ~/Desktop/text_file

Создание символической ссылки не увеличивает количество ссылок на файл.

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

В случае символической ссылки файл и символическая ссылка на файл четко разделены. В случае жесткой ссылки такого различия не было. Оба имени имели равные права. Большинство операций, выполняемых с символическими ссылками, выполняются с файлами, которые обозначены, например, чтением, записью, но удалением только символической ссылки. Также может случиться так, что целевой файл сначала удаляется, а символьная ссылка, ведущая на него, остается. Тогда это называетсянеработающая ссылка, которая ведет к файлу, которого больше не существует. Для жестких ссылок файл удалялся после удаления последней ссылки. В случае символических ссылок вы можете удалить файл, даже если на него ведут символические ссылки. Жесткие ссылки могут быть созданы в пределах одной файловой системы, но символические ссылки не имеют этого ограничения. Причем символические ссылки, в отличие от жестких ссылок, можно создавать как на файлы, так и на каталоги.

Задачи

1.Создать жесткую ссылку:

а. Войдите в систему как пользователь root.

б) Создайте жесткую ссылку на файл /etc/passwd в домашнем каталоге пользователя.

C. Отобразите содержимое текущего каталога, чтобы убедиться, что ссылка была создана.

г. Воспользуйтесь созданной ранее ссылкой и отобразите содержимое файла /etc/passwd (команда ссылка cat ).

е. Удалить ссылку (команда rm ).

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

а.Используйте первую консоль и войдите в систему как root.

б. Используйте вторую консоль и войдите в систему студента.

c. Используйте учетную запись студента и создайте подкаталог scripts в своем домашнем каталоге и файл сценария в нем.

г. Создайте символическую ссылку на каталог сценариев в домашнем каталоге пользователя-учащегося.

д. Показать содержимое текущего каталога, чтобы убедиться, что ссылка была создана.

е. Используйте созданную ранее ссылку и отобразите содержимое каталога сценариев.

г. Удалить ссылку.

.

Жесткие и символические ссылки

Жесткие ссылки. Жесткая ссылка — это создание нового имени для существующего файла. Если мы представим файл как его имя и данные, на которые он указывает, мы можем сказать, что жесткая ссылка создает новое имя, указывающее на те же данные. Эта команда аналогична копированию файла, за исключением того, что при копировании создается независимая копия файла, а при создании жесткой ссылки создается только новое имя, указывающее на тот же существующий файл.Используйте команду ln для создания жестких ссылок. Используем его следующим образом:

ln link_destination

где:

link_dest - файл, на который мы хотим сделать ссылку
link - файл, который будет первой ссылкой

Пример. Рассмотрим файл «dorota» на рабочем столе, путь которого: ~/Desktop/dorota. В моем случае это /home/sebastian/Desktop/dorota. (Символ «~» обозначает домашний каталог пользователя.)На рабочем столе есть каталог "Directory1", куда мы хотим сослаться на "dorota". Путь к каталогу ~/Desktop/Directory1. Мы хотим сделать ссылку под названием "aneta". Тогда цель ссылки и ссылка будут такими:

цель ссылки - ~/Desktop/dorota
ссылка - ~/Desktop/Directory1/aneta

Команда ln будет выглядеть так:

$ln ~/Desktop/dorota ~/Desktop/Katalog1/aneta

Эта команда создаст файл "aneta" в каталоге "Directory1", который будет ссылкой на файл "dorota" на рабочем столе (в каталоге ~/Desktop).Таким образом, мы дали файлу новое имя, равное старому. Оба файла имеют одинаковое (указывающее на одно и то же) содержимое.
Количество ссылок на файлы можно проверить, введя команду ls -l, которая выводит список содержимого каталога, задавая некоторые параметры файлам в нем. Если мы дадим эту команду в каталоге «Katalog1», мы получим одну запись для файла «aneta». У меня это выглядит так:

$ls -l

-rw-r -r-- 2 sebastian sebastian 12 Jun 26 18:30 aneta

Первая черточка означает, что это обычный файл, остальные буквы r , w и тире определяют права доступа к файлу.Цифра 2 после них просто означает количество ссылок. Первая ссылка - название ~/Desktop/dorota, вторая - ~/Desktop/Katalog1/aneta. Оба равны. Удаление одного из них не удаляет содержимое файла. Чтобы удалить файл, удалите все ссылки на него. Файл удаляется, когда удаляется последняя жесткая ссылка (имя). Если мы перечислим содержимое каталога ~/Desktop, то получим аналогичную запись с именем dorota, в которой также будет указано количество ссылок 2.

Теперь давайте удалим одно имя, например: rm ~ / Desktop / dorota

Снова список каталога "Directory1":

$ ls -l

-rw-r - r-- 1 sebastian sebastian 12 июня 26 18 :30 aneta

Вы видите, что количество ссылок теперь равно 1. Имя ~/Desktop/Directory1/aneta единственное и его удаление приведет к удалению файла с его содержимым.

Я написал, что используется команда ln для указания ссылки и цели ссылки, но параметр ссылки не является обязательным. Если мы его не укажем, указав только цель ссылки, то ссылка будет создана в той директории, в которой мы находимся в данный момент.Ссылка будет иметь то же имя, что и исходная ссылка.
Рассмотрим исходную ситуацию. Если мы хотим создать ссылку на ~/Desktop/Dorota в директории ~/Desktop/Katalog1, просто вводим в эту директорию команду:

$ln ~/Desktop/dorota

Эта команда создаст ссылку на ~/ Рабочий стол в директории ~/Desktop/Katalog1/dorota но с именем dorota (~/Desktop/Katalog1/dorota).
Если мы хотим создать ссылку с именем aneta, и выдаем ее из каталога ~/Desktop/Katalog1, просто введите команду:

$ ln ~/Desktop/dorota aneta

Как видите, вам не нужно для ввода полных имен файлов, если вы вводите команду из каталога, на который хотите создать ссылку.(То же самое было бы верно для имени dorota, если бы мы ввели команду из каталога ~/Desktop).

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

ln файл1 файл2 — создает файл2 как ссылку на файл1
ln файл1 каталог — создает ссылку на файл1 в каталоге с тем же именем, что и файл1
ln файл1 — создает ссылку с тем же именем как файл1 в каталоге, в котором выдается

символических ссылок. Символическая ссылка — это ссылка на файл, которая указывает на его имя. В то время как жесткая ссылка была новым именем, указывающим на файл, а также старым, символическая ссылка указывает на имя файла, которое указывает только на файл.Символические ссылки создаются так же, как и жесткие ссылки, только путем добавления параметра -s к команде ln. Например, ln -s файл1 файл2 сделает файл2 символической ссылкой на файл1.

Возвращаясь к нашему исходному примеру, который представляет собой файл ~/Desktop/dorota и каталог ~/Desktop/Katalog1. Если мы хотим создать ссылку на "dorot" с именем "aneta", которая будет находиться в каталоге "Directory1", но на этот раз предполагается символическая ссылка, мы выполняем аналогичную команду, но с параметром -s:

$ ln -s ~/Desktop/dorota ~/Desktop/Katalog1/aneta

Как и прежде, перечислим содержимое одной из директорий, содержащих файл «dorota» или «aneta».На этот раз сделайте это ~/Desktop. Список каталогов с помощью команды ls -l покажет одну запись для файла «dorota». У меня это выглядит так:

-rw-y -r-- 1 sebastian sebastian 12 27 июн 12:29 dorota

В этот раз видно, что количество ссылок не изменилось. Создание символической ссылки не увеличивает количество ссылок на файл. Если мы перечислим содержимое каталога «Directory1», мы увидим одну запись для файла «aneta». У меня это выглядит так:

lrwxrwxrwx 1 sebastian sebastian 30 Jun 27 12:25 aneta -> /home/sebastian/Desktop/dorota

Первая буква l сообщает, что это символическая ссылка, а не обычный файл, как это была в корпусе жесткая ссылка (было тире вместо л).Далее указываются права доступа к файлу (ссылке), количество ссылок 1 и другие его параметры, а затем указывается файл, на который ссылается эта символьная ссылка - /home/sebastian/Desktop/dorota.

В случае символической ссылки файл и символическая ссылка на файл четко разделены. В случае жесткой ссылки такого различия не было. Оба имени имели равные права. Большинство операций, выполняемых с символическими ссылками, выполняются с файлами, которые обозначены, например, чтением, записью, но удалением только символической ссылки.Также может случиться так, что целевой файл сначала удаляется, а символьная ссылка, ведущая на него, остается. Тогда это называется неработающая ссылка, которая ведет к файлу, которого больше не существует. Для жестких ссылок файл удалялся после удаления последней ссылки. В случае символических ссылок вы можете удалить файл, даже если на него ведут символические ссылки. Жесткие ссылки могут быть созданы в пределах одной файловой системы, но символические ссылки не имеют этого ограничения.Кроме того, символические ссылки могут быть созданы как для файлов, так и для каталогов, в отличие от жестких ссылок.

.

Как создавать и использовать символические ссылки (также называемые символическими ссылками) в Linux — аналогично команде терминала

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

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

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

Например, предположим, что у вас есть программа, файлы которой нужно хранить в /home/user/.программа. Но вы хотите хранить эти файлы на другом разделе, который смонтирован в /mnt/partition. Вы можете переместить каталог .program в /mnt/partition/.program, а затем создать символическую ссылку в /home/user/.program, указывающую на /mnt/partition/.program. Программа попытается получить доступ к своей папке в /home/user/.program, а операционная система перенаправит ее в /mnt/partition/.program.

Полностью прозрачен для операционной системы и программ, которые вы используете.Если вы перейдете в каталог /home/user/.program в вашем файловом менеджере, вы обнаружите, что в нем есть файлы внутри /mnt/partition/.program.

В дополнение к «символическим ссылкам», также известным как «мягкие ссылки», вы можете вместо этого создать «жесткие ссылки». Символическая или программная ссылка указывает на путь в файловой системе. Например, допустим, у вас есть символическая (или «мягкая») ссылка из /home/examplefile, указывающая на /var/examplefile. Если вы переместите файл в /var/examplefile, ссылка в /home/examplefile будет разорвана.Однако, если вы создадите «жесткую ссылку», она фактически будет указывать на базовый индекс в файловой системе. Итак, если вы создали жесткую ссылку из /home/examplefile, указывающую на /var/examplefile, а затем переместили /var/examplefile, ссылка в /home/examplefile по-прежнему будет указывать на файл, независимо от того, куда вы его переместили. Жесткая ссылка работает на более низком уровне.

Если вы не уверены, что использовать, в общем случае вам следует использовать стандартные символические ссылки, также называемые «мягкими ссылками».

Как создать символическую ссылку с помощью команды ln

Чтобы создать символическую ссылку с помощью команды ln, вы должны сначала открыть окно терминала. После этого запустите команду ln в следующем виде:

ln -s /path/to/original/path/to/link

В этой команде можно указать путь к каталогу или файлу. Все, что вы вводите, будет «просто работать».

Итак, если вы хотите создать символическую ссылку на папку «Загрузки» на рабочем столе, выполните следующую команду:

ln -s /home/name/Downloads/home/name/Desktop

Файл -s в папке Команда создает символическую ссылку.Если вместо этого вы хотите создать жесткую ссылку - опять же, это то, что вы обычно не хотите делать, если у вас нет особой причины для этого - вы исключаете -s из команды.

Используя наш пример, если мы заглянем в папку «Рабочий стол», мы найдем папку «Загрузки», которая, похоже, содержит те же файлы, что и наша основная папка «Загрузки».

Как удалить символические ссылки

Чтобы удалить символические ссылки, вы можете просто удалить их обычным способом.Например, вы можете щелкнуть по ним правой кнопкой мыши и удалить их с помощью графического файлового менеджера или использовать следующую команду для удаления (или «удаления») любого типа файла:

rm /path/to/link

Как создавать символические ссылки с помощью графического инструмента

Многие файловые менеджеры Linux предлагают возможность графического создания символических ссылок. Если это так, вы можете сделать это, щелкнув правой кнопкой мыши папку или файл и выбрав «Копировать», затем щелкнув правой кнопкой мыши внутри другой папки и выбрав «Создать ссылку», «Вставить как ссылку» или параметр с похожим названием.

Файловый менеджер Nautilus, включенный в GNOME и Unity Ubuntu Desktops, больше не имеет этого пункта меню, но имеет ярлык, который делает то же самое. Чтобы создать символическую ссылку в Nautilus, нажмите и удерживайте клавиши Ctrl и Shift на клавиатуре. Перетащите файл или папку в другое место. Nautilus создаст символическую ссылку на исходный файл или папку, куда вы перетащите файл или папку, а не переместите исходный файл или папку.

.

ссылок

Дамиан Стельмах

Последнее, что мы рассмотрим в этой серии статей, это ссылки, называемые ссылками. Достаточно простое дело, если говорить о механике и практическом использовании. Что такое ссылки, то, в общем-то, каждый из вас уже должен знать. В общем случае ссылка указывает на какой-либо другой объект, файл или его содержимое.

В системах Linux существует два вида ссылок: жесткие и символические.Жесткая ссылка создает новое имя для ресурса, сохраняя его в новом месте (не удаляя предыдущее), а сама ссылка относится не к самому файлу, а только к его содержимому. Звучит загадочно, но он прост в эксплуатации. Предположим, у нас есть файл с именем file.txt с содержимым:

 teskt1 teskt2 teskt3 

Теперь давайте создадим ссылку на этот контент, хранящийся в каталоге с именем link . Команда будет выглядеть так:

 ln файл.txt ссылка / link_to_file.txt 
где ln — команда для запуска ссылки, file.txt — имя ресурса, на который вы ссылаетесь, а link_to_file.txt — имя ссылки.

Отныне этот новый файл содержит те же данные, что и исходный файл, и мы создали новое имя для ресурса

 teskt1 teskt2 teskt3 

Если мы удалим исходный файл, то есть file.txt , этот новый файл, то есть link_to_file.txt , останется на диске вместе с его содержимым.

В случае со вторым типом ссылок, называемых символическими, дело обстоит намного проще, эти ссылки по своей работе очень похожи на ярлыки, которые мы знаем, например, из Windows. Они просто указывают на какой-то файл. Удаление исходного файла приведет к тому, что ссылка или ссылка просто перестанут работать должным образом. То же самое с остальной частью ярлыка в Windows.

Теперь давайте создадим символическую ссылку на файл с именем file2.txt . Можем, напримерДа:

 ln -s каталог file2.txt / new_file2.txt 

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

lrwxrwxrwx 1 Дэмиан Дэмиан 9 24 февраля 12:23 new_file2.txt -> file2.txt

Удаление исходного файла, конечно, будет означать, что ссылка перестанет работать.

Использование ссылок является очень распространенной практикой в ​​системах с ядром Linux.Я недавно использовал это решение при настройке веб-сервера Apache, где активацию отдельных модулей можно выполнить с помощью ссылок.

.

Смотрите также

Только новые статьи

Введите свой e-mail

Видео-курс

Blender для новичков

Ваше имя:Ваш E-Mail: