Разблокировать (удалить) каталог

690
alex

Я сделал:

ln -s /DATA/ ./base_DATA/ 

и я хотел бы отменить связь. Просто:

unlink ./base_DATA 

но... unlink: cannot unlink './base_DATA': Is a directory

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

Есть идеи, как справиться с этим?

1
unlink не является противоположностью ls -s. Он в основном такой же, как `rm` (в этом случае.` Rm` имеет больше полномочий.). ctrl-alt-delor 6 лет назад 0
Если вы используете gnu `ln`, рассмотрите возможность использования опций` -t` и `-T`. Они предназначены для того, чтобы аргументы `cp`,` mv` и `ln` были однозначными. ctrl-alt-delor 6 лет назад 0
@ ctrl-alt-delor не удаляет `rm -r` содержимое связанной директории? alex 6 лет назад 0
`rm -r` удалит каталог и все в нем. Он также удалит один файл (включая символическую ссылку). `rm` также может принимать список имен файлов. `unlink` исключает одно имя файла и удаляет только отдельные файлы. Примечание: не удаляйте, они удаляют / отменяют связь записей каталога. Если файл имеет нулевые ссылки (нет записи в каком-либо каталоге, нет открытых файлов), то он удаляется. ctrl-alt-delor 6 лет назад 0

2 ответа на вопрос

2
Kamil Maciorowski

./base_DATA/это обычный каталог, который существовал раньше. Ваша lnкоманда создала символическую ссылку внутри него. Символическая ссылка есть ./base_DATA/DATA. Вы можете отменить это:

unlink ./base_DATA/DATA 
Я вижу, это имеет смысл. И работает очевидно. Спасибо alex 6 лет назад 0
-1
WRJ

в Red Hat, когда у вас был каталог A и вы сделали

ln -s AB

успешно, и теперь хотел бы отменить связь B сделать:

М. А. АА

RM B

mv AA A

и вы вернетесь к исходному имени каталога A без мягкой ссылки.

Похожие вопросы