O comando find simples não será executado

O comando find simples não será executado

Sou bastante novo no Linux e atualmente estou tentando executar o seguinte comando,

find ~ -name apt.no

Estou procurando apt.noem outro diretório listado como montrose-files.

Não há resposta do shell e apenas cria uma nova linha. Alguém poderia me explicar por que isso não produz nenhum resultado?

bbcharlieca@myvm:~$ find ~ -name apt.no
bbcharlieca@myvm:~$ █

insira a descrição da imagem aqui

Responder1

Seu comando find ~ -name apt.noprocura um arquivo ou diretório * chamado apt.noem seu $HOMEdiretório e em qualquer diretório abaixo dele. (O ~representa seu próprio diretório inicial.)

A menos que montrose-filesesteja em seu próprio diretório inicial, ele não será pesquisado e o arquivo de destino não será encontrado. Por exemplo, se montrose-filesestiver em outro caminho, você precisará especificar esse caminho:

find /path/to/montrose-files -name 'apt.no' -print

É confuso, se você criou anteriormente um link simbólico montrose-filesem seu diretório inicial, isso também não será pesquisado, pois findpor padrão não segue links simbólicos. Você pode resolver isso de duas maneiras:

find ~ -follow -name 'apt.no' -print
find ~/montrose-files/ -name 'apt.no' -print

Na primeira abordagem contamos findcom followlinks simbólicos. Com algumas versões findisso pode ser uma abordagem ruim, porque se um link simbólico apontar em um loop, você poderá acabar percorrendo a estrutura várias vezes.

Na segunda abordagem, forçamos o link simbólico a resolver para um destino de diretório real anexando uma barra final.

Por fim, observe que em todos os casos citei o nome do arquivo que estou procurando. No seu caso simples, não fará nenhuma diferença, mas quando você começar a usar curingas para corresponder a partes desconhecidas de nomes de arquivos (por exemplo, apt.*), você deve usar aspas simples para garantir que os curingas não sejam processados ​​pelo shell antes de findpoder obter eles). É uma boa ideia adquirir o hábito de citar argumentos.


* Tecnicamente, ele corresponderá a qualquer item, mas é improvável que você tenha pipes, soquetes ou nós de dispositivos em seu diretório inicial

informação relacionada