A pergunta está relacionada ao script de shell em bash
.
Como verificar com um script quais arquivos no diretório atual são links flexíveis?
Caso eu tenha usado o termo errado, quando digo links flexíveis , refiro-me aos arquivos criados usando ln -s
.
A única coisa que consegui pensar é avaliar ls -la
como uma expressão e analisar seus resultados, mas obviamente essa não é a melhor solução.
bash
symbolic-link
ls
shell-script
ln
bguiz
fonte
fonte
Respostas:
Veja 'expressões condicionais' em
man bash
- neste caso você quer-h
:fonte
test -h
é o que eu queria!Você pode realmente não precisar de um script. Para mostrar qualquer link simbólico apenas na pasta atual, sem recorrer a nenhuma pasta filho:
Ou, para obter mais informações, use um dos seguintes:
Para saber se um arquivo é um link simbólico, pode-se usar
readlink
, o que não produzirá nada se não for um link simbólico. O exemplo a seguir não é muito útil, mas mostra comoreadlink
ignora arquivos e pastas normais. Use um dos seguintes:Observe que o acima
-exec ... +
exargs ...
são muito mais rápidos que-exec ... \;
. Gostar:fonte
xargs
é muito mais rápido no meu Mac; veja minha edição. Mas eu aprendi algo novo hoje: há também+
, em vez de\;
(Embora alguns afirmam que isso tem / teve problemas comgrep
.)