Sim. Vários.
Funções da biblioteca C
Como mencionado em outra resposta, a família exec*p()
das funções de biblioteca usa se o nome contém um caractere de barra como um teste para determinar se a pesquisa de caminho deve ser executada.
Leitura adicional
Outras coisas que pesquisam caminhos
Os programas podem, claro, fazer suas próprias pesquisas de caminho com a biblioteca C. Eles podem estar procurando por outras coisas além de executá-las. Ou eles podem querer um comportamento ligeiramente diferente daquele das funções da biblioteca C, que tem algumas surpresas pouco conhecidas para aqueles que não estão cientes do que o padrão POSIX exige. Então eles implementam seu próprio código de busca. Geralmente, eles seguirão as convenções da biblioteca C e, se o nome contiver um caractere de barra, apenas usarão o nome como está.
Por exemplo:
Os shells que possuem mecanismos CDPATH
ou cdpath
executam esse tipo de pesquisa e têm esse comportamento. Aqui está o shell TENEX C:
~> set cdpath=(/usr /)
~> cd ./etc
./etc: No such file or directory.
~> cd etc
/etc
/etc>
Nomes de arquivo que começam com um sinal de menos
Uma das maneiras de garantir que um nome de arquivo que comece com um sinal de menos não seja considerado uma opção de linha de comando é prefixar com ./
. Por exemplo:
-
rm ./-rf
é um nome de arquivo e rm -rf
é uma opção de linha de comando.
-
find ./-name wibble
está varrendo duas árvores de diretórios e encontrando tudo; Considerando que find -name wibble
está varrendo uma árvore de diretórios e aplicando uma correspondência de padrões.
Leitura adicional
Comandos onde a sintaxe do comando torna isso importante
Às vezes, a sintaxe do comando é definida de tal forma que algo é apenas um nome de arquivo se começar com um ponto final. Caso contrário, é outra coisa. De certa forma, isso é uma generalização do sinal de menos como uma convenção de caracteres de opção.
Por exemplo:
Com multilog
de Dan Bernstein, de daemontools, Bruce Guenter's multilog
do daemontools-encore, o djbwares multilog
, e s6-log
de Laurent Bercot do s6, o comando Os argumentos de linha são um script de log onde a primeira letra de cada argumento indica que tipo de comando de script é. Para denotar um diretório de log, é necessário fornecer um argumento de cadeia de comando que comece com uma barra ou um caractere de parada completa. multilog ./t ./u
significa log para dois diretórios; Considerando que multilog t ./u
significa logar em um diretório e preceder data e hora.