Bem, está no GNU , FreeBSD , OpenBSD e gerais BSD ls implementações, então eu diria que é muito provável que seja em qualquer lugar.
Eu tenho alguns softwares que, entre outras coisas, precisam:
Atualmente, ele executa o comando ls -l . Se o arquivo é um link simbólico, eu tenho que obter as permissões do arquivo de destino. A opção -L funciona bem para isso.
A pergunta: existem sabores do Unix nos quais eu corro o risco de não estar disponível? Se sim, quais são? (Se eles são raros e antigos o suficiente, eu poderia simplesmente ignorar o problema.)
Não analise ls se puder evitar. Dependendo do que você está fazendo, o utilitário test pode ser uma alternativa melhor.
test -r filename retornará sucesso se o arquivo for legível com as permissões do usuário atual e seguirá os links simbólicos automaticamente. Da mesma forma, -w e -x dirão se o arquivo é gravável ou executável. O comando test é especificado pelo POSIX e, portanto, deve funcionar com qualquer UNIX moderno.
Se você realmente precisa conhecer as permissões específicas do arquivo, ls pode ser a maneira mais portátil, contanto que você o use apenas em um arquivo por vez. Nesse caso, os sinalizadores -L e -l também são especificados por POSIX , portanto você deve estar razoavelmente seguro. (Veja " Não Analise ls " para um pouco mais de comentários sobre a portabilidade dos campos de saída de ls -l . )
Outra opção pode ser escrever um pequeno programa em C para aproveitar os stat(2) chamada de sistema, que estará disponível em todos os UNIX sob o sol. Se essa é uma pequena parte de um software maior que já está sendo compilado a partir de C, essa pode ser a melhor opção.
Está no SUSv3 (Posix 2001) mas não no SUSv2 (também conhecido como Unix98).
Tags compatibility ls scripting symlink