У меня есть символическая ссылка, ~/Desktop/test.txt
которая указывает на ~/rendu/test.txt
.
Я знаю ТОЛЬКО путь ~/Desktop/test.txt
, я хочу быстрый способ удалить ~/rendu/test.txt
БЕЗ удаления символической ссылки.
Для того, кто хочет знать почему: у меня есть файл с именем crypted.xxx
на моем рабочем столе, который зашифрован и содержит мой пароль.
Когда я хочу обновить зашифрованный файл, я дешифрую его и создаю crypted.txt
в специальном каталоге. Поэтому я делаю ссылку на этот файл на своем рабочем столе по практическим соображениям. Но, посмотрев на мой crypted.txt
, я хочу быстро удалить это crypted.txt
(но не ссылку на рабочем столе).
command-line
delete
symbolic-link
Уго Хед
источник
источник
Ответы:
используя,
find
чтобы найти символическую ссылку, а затем используя,readlink
чтобы получить полный путь к целиrm
:Или, как вы уже знаете название ссылки:
источник
rm
команда будет интерпретировать ее как относительную к текущему каталогу оболочки. Следовательно, для этой команды есть возможность удалить файл, отличный от того, на который указывала символическая ссылка.-f
-e
или-m
полный путь возвращается, даже если целевая символическая ссылка указывает на относительный путь, так что да, это важно в случаеrm "$(readlink ~/Desktop/test.txt)"
, но не при использовании-f
-e
или-m
.readlink -f
(но также работает, если сама цель не является ссылкой).Просто используйте:
чтобы очистить файл, или
чтобы удалить файл.
источник