-
Sim, "caminho inicial" significa um dos nomes de diretório que aparecem perto do início do comando
find
, depois das opções, mas antes da expressão. Eu interpreto a questão que você ligou como sugerindo que esse OP estava confuso sobre a diferença entrefind /etc ...
e
find -path /etc ...
-
"It refers to the combination of the start path and the relative path of the currently examined object."
Eu acho que o autor dessa resposta está imaginando que você tem um diretório chamado
tools/crowbar
, que contém arquivosdrink
,food
,foolishness
ewisdom
. Se você disserfind tools/crowbar -path "*bar/foo*"
encontrará
tools/crowbar/food
etools/crowbar/foolishness
, mas não os outros dois.
-
-
Eu concordo com o lcd047. Para colocar de outra forma, se você tem uma estrutura de diretórios como
. ├───cat │ ├───dog │ │ └───kennel │ └───tac │ └───src ├───dest ├───original │ ├───recipe │ └───src └───src
então
find . -path "*/src/*"
encontrará as coisas nas três pastas
src
(e em todos os seus subdiretórios) sem relatar coisas emcat
,cat/dog
,cat/dog/kennel
,cat/tac
,dest
,original
ouoriginal/recipe
. -
Ele ajuda a ler parágrafos inteiros, e não apenas a selecionar fragmentos de frases e esperar que façam sentido isoladamente. A discussão do teste
-path
em encontrar (1) diz,-path pattern
- File name matches shell pattern pattern.
The metacharacters do not treat '
/
' or '.
' specially; so, for example,find . -path "./sr*sc"
will print an entry for a directory called './src/misc
' (if one exists). ...OK, quando você vir "nome do arquivo", "padrão do shell", e "metacaracteres" todos na mesma linha, você é esperado para pensar em correspondência de padrões do shell / expansão de nome de caminho, que tem caracteres de padrão especiais
*
,?
e[
...]
. ("Metacaractere" é basicamente uma palavra de US $ 10 para "caractere especial".) E então vai e mostra um exemplo com um*
nele! Então você deve ser capaz de descobrir o que está falando.Então, o que isso está dizendo? Veja o exemplo:
sr*sc
corresponde asrc/misc
. Esta é uma diferença da expansão do nome do caminho no shell, onde você geralmente precisa usar algo comosr*/*sc
para corresponder asrc/misc
. E não, isso não se aplica apenas a*
;-path "sr????sc"
e-path "sr[cim/][cim/][cim/][cim/]sc"
funcionam da mesma maneira.E o que eles não se incomodam em mencionar é que
-path "*sr*sc"
corresponderá não apenassrc/misc
mas também.src/misc
esrc/.misc
; mesmo que*sr*/*sc
geralmente não corresponda àqueles (no shell) porque, na expansão do nome do caminho do shell,*
geralmente não corresponde a nomes que começam com.
.