Eu uso o comando find para pesquisar em estruturas de diretório grandes e aninhadas.
No resultado, a saída às vezes inclui uma barra dupla (//).
Exemplo (depois de "Downloads"):
#> find ~/Downloads/ -iregex ".*some.*"
/Users/michael/Downloads//subDirectory/some_file.pdf
Eu primeiro pensei que marcaria o diretório de trabalho atual. Mas esse não é o caso.
Qual é o significado dessa barra dupla?
Normalmente copio o resultado para a área de transferência, mudo para o localizador. Em seguida, "shift" + "command" + "g" e colando o caminho (até o arquivo) na caixa. Para que o diretório contendo seja aberto.
Funciona bem. Mas a barra dupla eu tenho que remover manualmente.
Portanto: como posso evitá-lo?
Respostas:
find
é bastante literal. Quando você diz para procurar em "~ / Downloads /", ele usa isso (incluindo a barra final) como o prefixo para o que quer que encontre. Como existe uma barra desnecessária e irrelevante no final do caminho que você deu, você acaba com uma barra extra desnecessária e irrelevante na saída.Solução: remova o "/" à direita do diretório de pesquisa:
fonte
Significa que você está usando uma descoberta BSD antiga e estranha.
Você pode realmente omitir a barra final no seu comando original, mas desde que ela seja adicionada automaticamente por meio da conclusão da guia (da qual você definitivamente deve usar o máximo possível), e como a barra final é realmente usada em vários lugares para garantir que você está lidando com um diretório e não um nome de arquivo, omitir é contra-intuitivo e bobo.
Em vez disso, sugiro fazer uma dessas outras coisas:
a) Faça um invólucro para encontrar os tubos para sed: | sed @ // @ / @ '
b) Instale o findutils do GNU com 'brew install findutils' e use 'gfind' diretamente, alias 'find' para 'gfind' ou adicione / usr / local / opt / findutils / libexec / gnubin ao seu caminho (o que também adiciona GNU findutils '' localizar ',' updatedb 'e' xargs ').
c) Alterne para um sistema operacional GNU / Linux adequado que não tivesse esse problema (e milhares de outros) em primeiro lugar. : p
fonte
set mark-directories off
ao seu.inputrc
e você está pronto para ir. De um daqueles caras antigos do BSD.