Як замінити символьну посилання на фактичний файл?


1

Я хочу вилучити символічну посилання і замість цього вставити файл, на який він посилається, якщо це можливо, з однією командою, то я можу мати його як "Зовнішній інструмент" у phpStorm.

Відповіді:


1
cp --remove-destination "$(readlink <symlink>)" <symlink>

Джерело: https://unix.stackexchange.com/a/35027


Спасибі, я спробував це і він не працював, але виявляється, що це було тому, що посилання, де копіюються і не вказують на потрібне місце більше. Але я був збентежений і думав, що це щось з баш
OZZIE

Як мені змусити цю роботу працювати для всіх символічних посилань у каталозі? Знайти скарги illegal option -t всякий раз, коли я поклав його в цикл.
cjm

@cjm Це має добре працювати з find. Ви пропускаєте шлях як аргумент для пошуку? Яка ваша точна команда пошуку?
grg

@grgarside Я відсутній шлях, як мій аргумент знайти. Тепер моя проблема полягає в тому, що cp стає кричущим illegal option -- - замість розпізнавання --remove-destination як дійсний варіант. Команда є for f in (find . -type l); cp --remove-destination "(readlink $f)" $f;end;; оболонка - риба. Вона скаржиться на незаконний варіант, чи ні (readlink $f) цитується чи ні.
cjm

@cjm Ви не маєте "$" перед відкритою дужкою перед читанням (має бути "$(readlink ). Також чому ви використовуєте оболонку, щоб зробити цикл? find . -type l -exec cp --remove-destination "$(readlink {})" {} \;
grg
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.