Este é o comando que tenho e gostaria de modificar com uma condição adicional:
find /home/user/backups/ -mindepth 2 -maxdepth 3 -name "*~EEEE000.tif" -print
Esta é a saída de ls /home/user/backups/
:
backup20170101_somerandomstring
backup20170115_somerandomstring
backup20170230_somerandomstring
backup20170305_somerandomstring
backup20170408_somerandomstring
backup20170521_somerandomstring
.
.
.
backup20190111_somerandomstring
backup20190130_somerandomstring
backup20190209_somerandomstring
backup20190301_somerandomstring
backup20190303_somerandomstring
backup20190311_somerandomstring
backup20190313_somerandomstring
backup20190412_somerandomstring
.
.
.
backup20200102_somerandomstring
backup20200103_somerandomstring
backup20200105_somerandomstring
backup20200110_somerandomstring
.
.
.
Eu só quero pesquisar diretórios que foram gerados após 2019-03-10. Portanto, isso pode ser facilmente pensado como diretórios que em seu nome têm números maiores do que 20190310
logo após a palavrabackup
.
Eu posso diluir seq
, mas não sei como usá-lo ao lado de encontrar. E tenho certeza que existem opções melhores por aí.
seq -f "backup%1.0f" 20190310 20200131
Usando o
zsh
shell, o padrão de globbing do nome do arquivo corresponde aos<n-m>
números no intervalo inclusive.n
m
O padrão
corresponderia a todos os nomes
/home/user/backups
que começam com a stringbackup
e é imediatamente seguido por um número igual20190311
ou maior e, em seguida, um sublinhado e possivelmente mais caracteres.Para corresponder apenas a diretórios:
Usando isso com seu
find
comando original:Isso pesquisaria em cada diretório que o glob corresponde por nomes de arquivos ou diretórios que terminam com
~EEEE000.tif
(em profundidades de diretório específicas). Ele imprimiria os nomes de caminho encontrados. As profundidades de busca foram ajustadas para levar em conta a profundidade extra das raízes do caminho de busca.Sem
find
, e apenas imprimindo nomes de arquivos regulares:Isso também resolveria links simbólicos para diretórios nos caminhos.