Какие?!? Я не могу удалить символическую ссылку на каталог в смонтированном каталоге через sshfs без ls
Привет, ребята!
Сегодня я столкнулся с очень странной вещью, и я хочу понять, почему это происходит. Я занимался этим целый день, пока не понял, что происходит.
Поэтому я писал сценарий bash для автоматизации сборки через Jenkins.
скрипт выглядит примерно так:
#!/bin/bash
WORKDIR="sftp_servername"
USERNAME="someuser"
PASSWORD="somepassword"
HOST="somehost"
HTDOCS="web"
if [ ! -d "$WORKDIR" ]; then mkdir -m 744 "$WORKDIR"; fi
if !(echo "$PASSWORD" | sshfs "$USERNAME@$HOST:/" "$WORKDIR" -p 22 -o ServerAliveInterval=60,password_stdin)
then
echo "Failed to connect to $HOST"
exit
fi
cd $WORKDIR
>>> ls -la <<< !
if [ -d "$HTDOCS" ]
then
unlink "./$HTDOCS"
fi
... additional commands to link the folder to another release etc. that works just fine
Теперь вышеприведенный скрипт работает (и удаляет символическую ссылку $WORKDIR), если присутствует ls -la! Как это возможно. Если я удаляю строку ls -la, она идет со словами "не могу удалить $WORKDIR - это каталог" Нужен ли sshfs ls, чтобы "понять", что $WORKDIR - это символическая ссылка, а не папка?
Если это так, то есть ли у вас какое-то более разумное решение, чем это?