Символьная ссылка с резервным копированием и удалением - PullRequest
2 голосов
/ 01 ноября 2019

Мне нужно создать символическую ссылку, которая должна создать резервную копию файла (если он уже существует) с суффиксом даты и удалить исходный файл. Я убежден, что что-то упустил ...

Я делаю это

ln -v -b -f -s the_link original_file -t my_dir -S "20191101"

На странице man:

-b:резервное копирование, если файл уже существует
-f: принудительное удаление, если файл существует
-s: символическое (мягкая ссылка)
-t: каталог назначения
-S: суффикс, заменяющий обычный суффикс резервного копирования
-v: подробный

ln сначала создает правильную ссылку the_link -> original_file, но после этого, я думаю, она создает другую ссылку original_file -> original_file. По крайней мере, многословие дает мне это:

/home/engdev/PFE/appl/lib/libCsReport.so -> '/home/engdev/PFE/#5799_-_2019-195_19002034_-_Desativação_ASP/appl_#5799_-_2019-195_19002034_-_Desativação_ASP/lib/libCsReport.so' /home/engdev/PFE/appl/lib/libCsReport.so -> libCsReport.so

И, конечно, ссылка не работает.

Заранее благодарен за любую помощь.

Вот мой код:

for file in `ls plat_#5799_-_2019-195_19002034_-_Desativação_ASP/lib | awk -F "/" "{print $NF}"`
do
echo "creating backup: file: $HOME/PFE/plat/lib/$file"
echo "linking new lib: file: plat_#5799_-_2019-195_19002034_-_Desativação_ASP/lib/$file"
ln -v -b -f -s $PWD/plat_#5799_-_2019-195_19002034_-_Desativação_ASP/lib/$file $file -t $HOME/PFE/plat/lib/ -S "20191101"
done

for file in `ls appl_#5799_-_2019-195_19002034_-_Desativação_ASP/lib | awk -F "/" "{print $NF}"`
do
echo "creating backup: file: $HOME/PFE/appl/lib/$file"
echo "linking new lib: file: appl_#5799_-_2019-195_19002034_-_Desativação_ASP/lib/$file"
ln -v -b -f -s $PWD/appl_#5799_-_2019-195_19002034_-_Desativação_ASP/lib/$file $file -t $HOME/PFE/appl/lib/ -S "20191101"
done
...