Frequentemente, tenho um nome de arquivo e seu caminho parcial, por exemplo, "content / docs / file.xml".
Existe uma maneira simples de pesquisar esse arquivo, sem cortar manualmente em partes seu nome para fornecer o nome do diretório e o nome do arquivo separadamente?
Seria ótimo se find
funcionasse dessa maneira, para que eu pudesse correr find content/docs/file.xml
, mas infelizmente não funciona.
linux
command-line
search
find
slhck
fonte
fonte
find -path *content/docs/file.xml
trabalhou para mim.Respostas:
Passe um
*
curinga para indicar uma correspondência para qualquer coisa . Você também precisa escapar do*
s, por exemplo:ou coloque o padrão entre aspas, por exemplo:
Como a página do manual descreve:
fonte
O find também possui uma opção -wholename
find $top_dir -wholename *string*
fonte
ou apenas
fonte
Por exemplo, pesquisando arquivos em um local usando asterisco / curinga (
*
) como:dir=“/apps/*/instance01/"
você pode usar find${dir} -name “*.jks”
. colocando todos os arquivos em uma matriz como esta:se você deseja obter arquivos com outras extensões, use 'ou' assim:
-name "*.keystore" -o -name "*.jks" -o -name “*.p12"
porque-name
aceita apenas uma sequência, use 'ou'.Por fim, coloque tudo em array como este:
se você possui caminhos completos e não parciais, é muito mais fácil colocá-los em matrizes como esta:
fonte