TGViewer
Системный Администратор (Сисадмин) Системный Администратор (Сисадмин) @sysadminof · 14.3K subscribers
Post #5693 464
Чем отличается команда rm от unlink?

Обе эти команды умеют удалять, но в 99% используется именно rm, потому что про unlink вы либо не слышали, либо rm с головой хватает.

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

У unlink есть всего лишь два ключа запуска help и version. Очень ограниченный инструмент, но чем инструмент проще, тем проще его синтаксис.

# unlink /tmp/hardlink
# unlink /tmp/file


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

Команда unlink использует системную команду unlink, в то время как команда rm использует системный вызов unlinkat. Оба системных вызова практически одинаковы.

Unlink не умеет работать с wildcard и globbing шаблонами. Так же вы не сможете с помощью нее удалить каталог.

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

rm -f test.txt

И получаем - НИЧЕГО. То есть rm -f не вернул ошибку, что файл отсутствует. А если сделать так:

unlink test.txt

получим ошибку:

unlink: cannot unlink 'test.txt': No such file or directory

То есть если нужно будет обработать результат выполнения команды rm -f, то будет непонятно, существовал ли вообще файл.

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

Небольшой секрет: если нужно, чтобы файл никто не смог удалить, включая root:

chattr +i test.txt

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

Ключ i - сделает файл неизменяемым. Чтобы снять с файла этот аттрибут, в команде которая выше, замените знак «+» на «-».

📲 Мы в MAX

👉 @sysadminof
  • 👍 5
  • ❤ 1
  • 🔥 1
  • 🗿 1
More from @sysadminof
  1. Sep 29, 2026🥷 Living off the Browser — пентест из вкладки Chrome Приглашаем на открытый урок. 🗓 05 о…
  2. Sep 28, 2026Шпаргалка по часто используемым командам systemctl 1. Посмотреть статус службы. Покажет ст…
  3. Sep 27, 2026Полезные команды Linux. Манипуляции с текстом # cat -n file1 Вывести содержимое файла, нум…
  4. Sep 25, 2026📲 Мы в MAX 👉 @sysadminof
  5. Sep 24, 2026Как скопировать структуру каталогов в Linux В этой статье мы расскажем как в две команды с…
  6. Sep 22, 2026Linux приветствует еще одного нового пользователя 😀 📲 Мы в MAX 👉 @sysadminof
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →