Удаление папки, которая содержит символьные ссылки

Если я rm -rf папка, которая имеет гибкие ссылки в нем, это попытается перейти по тем ссылкам и удалить соответствующую папку, или это просто удалит связь с ними?

У меня есть копия моего корневого каталога с символьными ссылками в нем, и я боюсь rm -rf это в случае, если это переходит по тем ссылкам и аварийно завершает соответствующие папки...

16
задан Peque 7 August 2015 в 07:56
поделиться

2 ответа

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

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

17
ответ дан 30 November 2019 в 21:18
поделиться

Нет. rm -rf не будет переходить по символическим ссылкам - он просто удалит их.

% mkdir a                                                             
% touch a/foo
% mkdir b                                                               
% ln -s a b/a                                                           
% rm -rf b                                                              
%   ls a                                                                  
foo
10
ответ дан 30 November 2019 в 21:18
поделиться