Qualquer razão por que encontrar não mescla várias barras em uma?

1

É verdade que find não deveria estar fazendo nem mesmo as operações de unificação / simplificação mais simples, como a união de várias barras sucessivas juntas ( que seria equivalente à forma original )?

Por exemplo, a saída de find ./// é:

.///
.///somefile
[…]

(testado com find do GNU e busybox )

Se sim, então por que isso acontece? Existe algum caso de uso sensato que eu estou sentindo falta? Talvez para o caso de alguém estar mostrando a saída de find dentro de scripts?

BTW, Também interessante é a saída da descoberta do GNU para find ./// -maxdepth 0 -printf '%h\n' ( %h é suposto ser " Diretórios principais do nome do arquivo (todos menos o último elemento e a barra antes dele) "): .// (simplesmente um a menos / )

    
por phk 30.12.2016 / 23:50

1 resposta

6

Se você não tiver utilitários que possam entender os caracteres NUL, esse comportamento histórico poderá ser usado para distinguir entre arquivos. A saída de localização nunca conterá duas barras seguidas, a menos que sejam fornecidas como parte do caminho inicial. Isso significa que a saída como

.//path/to/file
./name/more

informa que existe um diretório chamado file\n. em vez de um subdiretório do diretório atual chamado name se você chamar find com

find .// -print
    
por 31.12.2016 / 02:33