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


15

Що має (поодинока, не потрібна пакетна обробка файлової системи) посилання, який командний рядок використовувати для заміни його на копію файлу, на який він посилається?

Відповіді:


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

1
помилка "-bash: синтаксична помилка поблизу несподіваного маркера` newline '"при виконанні з середовища debian.
Лін Сонг Ян

Якщо <symlink>є символьне посилання на відносний шлях, це працює лише в тому випадку, якщо <symlink>в поточному каталозі є. Ви можете скористатися readlink -f. Або якщо використовуєте zsh:cp --remove-destination path/to/symlink(:A) path/to/symlink
Стефан Шазелас

0

Ви можете зробити:

file=path/to/symlink
{ rm -f -- "$file" && cat > "$file"; } < "$file"

(що копіює лише вміст, а не метадані файлу, такі як дозволи та права власності).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.