На этот вопрос уже есть ответ здесь:
- Заменить символические ссылки на файлы 12 ответов
У меня есть несколько символических ссылок на другие файлы в каталоге. Я хочу преобразовать эти ссылки в независимые файлы.
Есть команда, которая делает это?
На этот вопрос уже есть ответ здесь:
У меня есть несколько символических ссылок на другие файлы в каталоге. Я хочу преобразовать эти ссылки в независимые файлы.
Есть команда, которая делает это?
Ответы:
Хотя Игнасио - хороший ответ, я хотел автоматизировать процесс для каждого файла, который является символической ссылкой в текущем каталоге и подкаталогах.
Это делает трюк:
находить . -типа l -exec cp \ "{} \" \ "{}. tmp $$ \" \; -exec mv \ "{}. tmp $$ \" \ "{} \" \;
Надеюсь это поможет!
Первый способ, который мне приходит в голову, - это скопировать все ссылки на новые файлы и затем удалить все ссылки.
cp <link> <link>.new
rm <link>
Надеемся, что файлы имеют какую-то общую структуру имен, так что вы можете использовать подстановочные знаки и запускать команды только один раз, в противном случае вы можете написать простой скрипт оболочки
К вашему сведению: Mac OS X не поддерживает --remove-назначения пометить, поэтому я написал простой скрипт для размещения в каталоге / usr / bin:
FILE=$1
TEMP=$1".tmp"
mv $FILE $TEMP
if [ -e $TEMP ]
then
cp "$(readlink $TEMP)" $FILE
if [ -f $FILE ]
then
rm $TEMP
else
echo "unln failed."
fi
fi
Этот позволяет вам использовать подстановочные знаки:
for FILE in "$@"
do
TEMP=$FILE".tmp"
if [ -h $FILE ]
then
mv $FILE $TEMP
if [ -e $TEMP ]
then
cp "$(readlink $TEMP)" $FILE
if [ -f $FILE ]
then
rm $TEMP
else
echo "unln failed for link: $FILE"
fi
fi
fi
done