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.