Часто у меня есть имя файла и его частичный путь, например, «content / docs / file.xml».
Есть ли простой способ поиска этого файла, не разрезая вручную на части его имя, чтобы отдельно указать имя каталога и имя файла?
Было бы замечательно, если бы я find
работал таким образом, чтобы я мог бежать find content/docs/file.xml
, но, к сожалению, это не так.
linux
command-line
search
find
slhck
источник
источник
find -path *content/docs/file.xml
работал на меня.Ответы:
Передайте
*
подстановочный знак, чтобы указать совпадение для чего-либо . Вы также должны экранировать*
, например:или заключите шаблон в кавычки, например:
Как описано на странице руководства:
источник
find также имеет опцию -wholename
find $top_dir -wholename *string*
источник
или просто
источник
Например, поиск файлов в местоположении, используя звездочку / подстановочный знак (
*
) как:dir=“/apps/*/instance01/"
вы можете использовать поиск${dir} -name “*.jks”
. поместив все файлы в массив следующим образом:если вы хотите получить файлы с другими расширениями, используйте «или», например:
-name "*.keystore" -o -name "*.jks" -o -name “*.p12"
потому что-name
принимает только одну строку, поэтому используйте «или».Наконец, поместите все в массив следующим образом:
если у вас есть полные пути, а не частичные пути, гораздо проще поместить их в массивы, подобные этому:
источник