Fazendo várias suposições:
- O nome do arquivo remoto é o mesmo que o nome do arquivo local / symlink
- Os arquivos locais estão todos em um único diretório
- Os arquivos remotos estão todos em um único diretório
Você pode então listar arquivos remotos e deletar qualquer um para o qual não exista nenhum arquivo ou link simbólico local. Algo assim poderia funcionar
#!/bin/bash
#
rmt=/path/to/sshfs/storage
lcl=/path/to/local/storage
for itempath in "$rmt"/*.ts
do
itemfile="${itempath/*\/}"
if test ! -h "$lcl/$itemfile"
then
echo "Removing remote $itemfile with no local symlink" >&2
rm -f "$itempath"
fi
done
Se você quiser apenas excluir todos os links simbólicos locais em um diretório específico, você poderá simplificar o código:
#!/bin/bash
#
lcl=/path/to/local/storage
for item in "$lcl"/*.ts
do
if test -h "$item" -a ! -e "$item"
then
echo "Removing dangling symlink $item" >&2
rm -f "$item"
fi
done