Primeiro exemplo (busca recursivamente arquivos, com find ):
find . -type f -name 'temp_*.txt' -exec sh -c '[ ! -e "$0"_load ]' {} ';' -print
Isso produzirá os nomes de todos os arquivos regulares no diretório atual (ou abaixo) que correspondem ao padrão temp_*.txt , mas que não possui um arquivo temp_*.txt_load correspondente associado a ele. O carregamento poderia então ser feito por outro -exec no lugar do -print .
Segundo exemplo (loop de shell mais simples e explícito):
for name in ./temp_*.txt; do
if [ -f "$name" ] && [ ! -e "$name"_load ]; then
command_to_load "$name"
touch "$name"_load
fi
done
Este é um loop de shell explícito que examina apenas os arquivos no diretório atual. Se o nome correspondente for um arquivo normal e se não houver nenhum arquivo _load correspondente associado, algum comando para carregar $name será invocado e o arquivo _load será criado.
Alguém pode querer usar
command_to_load "$name" && touch "$name"_load
dentro da if -statement para criar apenas o arquivo _load se o carregamento foi bem.