SOMENTE a partição raiz de localização / pesquisa do Linux?

17

Digamos que eu precise fazer:

encontre / -name somefile.txt

e diga que a partição raiz /está montada /dev/sda5; no entanto, digamos que eu também tenha partições de 250 GB ( /dev/sda6, /dev/sda7) montadas /media- E outro local que não consigo me lembrar no momento. Diga também que sei que o arquivo que estou procurando está /dev/sda5.

Obviamente, o comando acima também descerá /mediae o outro diretório que representa as grandes partições, perdendo tempo procurando o arquivo no lugar errado.

Existe uma maneira de encontrar instruir (ou outro comando) para procurar única / sobre /dev/sda5, e não a descer aos diretórios se eles estão em diferentes partições?

sdaau
fonte

Respostas:

30

Use o -xdevargumento para encontrar

-xdev Não desça diretórios em outros sistemas de arquivos.

n
fonte
1
Graças muito - apenas para referência, a sintaxe seria: <pre> find / -name -xdev somefile.txt </ pre>
sdaau
1
Para usuários de mac: encontre -x / -name somefile.txt
CodeReaper
1
Procurar na --one-file-systemla página de manual também dunão me ajudou. Pelo menos os dois começam com -xeu suponho. E isso significa "dispositivos cruzados", eu acho.
Sridhar Sarnobat
2

O padrão POSIX define o -xdev"primário":

fará com que o find não continue descendo dos diretórios anteriores com um ID de dispositivo diferente

Isso é implementado nos GNUsfind (ou seja, nos findutils ; docs ).
O GNU findtambém permite que você use -mountcomo ” um nome alternativo para -xdev, para compatibilidade com algumas outras versões do find. "

Nos sistemas BSD e no macOS, a opção é alternativa -x. Eles (de maneira confusa) chamam -xdevde " obsoletos ". No entanto, você pode usar -mount. [páginas de manual do FreeBSD e macOS ]

outras ferramentas, apenas para sua informação

Se você estiver usando ripgrep ( rg) como rg --files, você pode usar a --one-file-systemopção, que faz o mesmo como achado de -xdevopção.

myrdd
fonte