Пакеты Fedora подписываются и проверены суммированием. Даже репозитории сторонних производителей, такие как rpmfusion подписывают свои пакеты.
Конфетка (диспетчер пакетов) требует специального флага (--nogpgcheck
) устанавливать пакеты, которые не были подписаны.
ln
, как cp
и mv
, ведет себя по-другому в зависимости от того, является ли место назначения существующим каталогом (включая символьную ссылку на одну). Если это не, то источник скопирован/перемещен/связан в имя desintation. Если место назначения является существующим каталогом, источник скопирован/перемещен/связан в файл того же базового имени как источник, в соответствии с целевым каталогом.
С GNU ln (как найдено в соответствии с Linux), используйте -n
опция перезаписать место назначения вместо того, чтобы писать под ним, когда место назначения является символьной ссылкой на каталог.
ln -snf "$GAME_PATH/Lone Wolf/books" "$SEVENTH_SENSE_PATH/Seventh Sense"
С другой стороны, можно протестировать, если место назначения является каталогом, и не воссоздают его, если существует.
[ -d "$SEVENTH_SENSE_PATH/Seventh Sense"/. ] ||
ln -s "$GAME_PATH/Lone Wolf/books" "$SEVENTH_SENSE_PATH/Seventh Sense"
С другой стороны, можно удалить цель сначала и создать ее безусловно.
rm -f "$SEVENTH_SENSE_PATH/Seventh Sense"
ln -s "$GAME_PATH/Lone Wolf/books" "$SEVENTH_SENSE_PATH/Seventh Sense"
Это происходит, потому что во второй раз Вы запускаете свой скрипт, ссылка существует, и это указывает на каталог. Таким образом, это помещает новую ссылку в том каталоге. Можно использовать что-то вроде этого:
if test -e "$SEVENTH_SENSE_PATH/Seventh Sense"
then
echo " link already exists"
else
ln -s -f "$GAME_PATH/Lone Wolf/books" "$SEVENTH_SENSE_PATH/Seventh Sense"
fi;