Какие?!? Я не могу удалить символическую ссылку на каталог в смонтированном каталоге через 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 - это символическая ссылка, а не папка?

Если это так, то есть ли у вас какое-то более разумное решение, чем это?

0 ответов

Другие вопросы по тегам