Заставить ссылку на внешний файл вести себя как сам файл (, т.е. удалить цель ссылки, а не ссылку)

Ваша первая команда аналогична

if [ "some string" ]; then... fi

что всегда будет верно.

Вторая команда почти правильная, но вам нужно поместить !в кавычки или экранировать ее, иначе она будет интерпретирована вашей оболочкой.

Двойные кавычки всей команды и одинарные кавычки пути, чтобы избежать проблем со специальными символами внутри пути. Убедитесь, что *находится вне одинарных кавычек :

.

if sshpass -p "$SSHPASS" ssh root@$SSHHOST "test ! -f '$SSHPATH/$ID.'*"; then... fi

Если ваш шаблон соответствует нескольким файлам, тест завершится неудачно .

0
19.08.2021, 16:44
1 ответ

Вместо того, чтобы перемещать отдельные файлы, я бы попытался переместить содержащий их каталог.

Предположим, что путь похож на

/opt/foopackage/foo.bin

Вместо привязки к foo.binвы можете попробовать переместить /opt/foopackageполностью и привязать его к тому NTFS.

Если это показывает такое же поведение, вы можете попробовать переместить каталог верхнего уровня(/optв этом примере ).

На мгновение отредактирую, я не совсем уверен, что это хорошая идея, поскольку различия в моделях разрешений между Linux Windows (и расширением NTFS )могут привести к некоторым странностям (I' Я думаю, что вещи могут быть записываемыми или исполняемыми во всем мире, когда они не должны быть ).

Изменение размера диска NTFS, создание пространства для тома в собственном формате Linux для вашей ОС SD-образа для монтирования в/opt(или что-то еще подходящее )— еще одно потенциальное решение, которое кажется «более чистым».

1
20.08.2021, 10:26

Теги

Похожие вопросы