find -name "?"
find ~ -name "?"
Por que um desses comandos encontra .
e o outro não? Como posso fazer com que a segunda versão, com um caminho explícito, encontre a .
entrada junto com qualquer outro arquivo de caractere único no diretório especificado?
find (GNU findutils) 4.5.11
caso isso importe...
Responder1
Sem o starting point
for find
, ele usa .
(o diretório atual). Na verdade, essas duas linhas produzirão resultados idênticos:
find -name "?"
find . -name "?"
Para poder especificar um ponto de partidaeencontre find
o .
diretório e adicione /.
ao seu ponto de partida, ou seja:
find ~/. -name "?"
Editar: Agora, para saber por que, vamos comparar esses dois comandos:
find ~/. -name "?"
find ~ -name "?"
Existem duas diferenças em sua produção. Primeiro, o comando with /.
produz resultados com um extra /.
em cada linha, como seria de esperar. Em segundo lugar, e esta era a questão raiz do OP, é que o /.
comando encontra o ~/.
próprio pseudodiretório, mas o ~
comando não. Isso ocorre porque a ~/.
pesquisa pede explicitamente para .
ser pesquisada. A menos que esteja listado na find
linha de comando, find
ignora os pseudodiretórios .
e . ..
(Você pode imaginar se não acontecesse?)
Consulte man find
para obter mais informações.