Как заменить символическую ссылку на копию файла, на который она ссылается?


15

Имея символьную ссылку (единую, не требующую пакетной обработки файловой системы), какую командную строку использовать, чтобы заменить ее копией файла, на который она ссылается?

Ответы:


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

1
ошибка "-bash: синтаксическая ошибка рядом с неожиданным токеном" новая строка "" при выполнении из среды 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.