com zsh
:
print -rl ${(0)^"$(locate -0 ...)"}(N.)
(0)
é um sinalizador de expansão de parâmetro que divide em caracteres NUL (como usamos locate -0
), abreviação de (ps:
. ^
:)
Com (N.)
, em vez de adicionar (N.)
no final da matriz, nós o adicionamos a cada elemento.
.
é um qualificador de glob, N
para corresponder apenas a arquivos regulares, ^/
para remover o elemento se ele não corresponder (não existe ou não é um arquivo comum ou não podemos Verifica). Você também pode usar .
em vez de print -rl
para corresponder a não-diretórios, em vez de apenas arquivos regulares.
zsh
imprime cada argumento raw em uma linha separada .
Você pode usar qualquer qualificador locate
glob, mas note que os pedidos não terão nenhum efeito, já que estamos expandindo um glob por arquivo aqui, então há apenas um arquivo para classificar para cada um.
(note que pode falhar se o último arquivo relatado por %code% terminar em caracteres de nova linha (um erro de substituição de comando presente em todos os shells)).