-
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,foolishnessewisdom. Se você disserfind tools/crowbar -path "*bar/foo*"encontrará
tools/crowbar/foodetools/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,originalouoriginal/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
-pathem 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*sccorresponde asrc/misc. Esta é uma diferença da expansão do nome do caminho no shell, onde você geralmente precisa usar algo comosr*/*scpara 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/miscmas também.src/miscesrc/.misc; mesmo que*sr*/*scgeralmente 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..