Я хотел бы отсоединить символические ссылки, как это:

unlink *

Тем не менее он говорит unlink: extra operand

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

2 ответа2

1

Используя «*», вы пытаетесь отменить связь всех файлов и каталогов в вашем текущем местоположении.

unlink не может обрабатывать файлы или каталоги, он может обрабатывать только ссылки, использовать команду find, чтобы найти все ссылки и отменить их связь, например:

find . -type l -exec unlink {} \;
0

Я хотел бы избежать порождения других процессов с помощью find … -exec … . Когда вам нужно unlink или rm результаты find использование его -delete , вместо этого.

find -maxdepth 1 -type l -delete

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .