Sou bastante novo no Linux e atualmente estou tentando executar o seguinte comando,
find ~ -name apt.no
Estou procurando apt.no
em 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:~$ █
Responder1
Seu comando find ~ -name apt.no
procura um arquivo ou diretório *
chamado apt.no
em seu $HOME
diretório e em qualquer diretório abaixo dele. (O ~
representa seu próprio diretório inicial.)
A menos que montrose-files
esteja 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-files
estiver 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-files
em seu diretório inicial, isso também não será pesquisado, pois find
por 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 find
com follow
links simbólicos. Com algumas versões find
isso 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 find
poder 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