
Я пытаюсь извлечь один файл из двух разных путей. Я использовал следующую команду, кажется, она выполняется нормально, но вывода нет.
find . \( -path "/usr/local" -o -path "/user/local/archive" \) -name "xyz.csv"
Не могли бы вы мне помочь?
решение1
Причины, по которым вы не получаете выходные данные:
- Точка — это корень вашего поиска, поэтому, если вы не находитесь в корневом каталоге, в вашем дереве поиска
.
не будет/usr/local
- Параметр
-path
должен соответствовать всему пути, включая искомый объект, поэтому, если вы указали-name
это имя, оно также должно быть частью-path
(или к нему должно быть добавлено подстановочное слово*
в конце).
Но find
принимает более одного аргумента в качестве пути поиска, поэтому вы можете искать, как написал @Kamaraj в своем комментарии. В вашем случае это даже не обязательно, так как find также ищет в подкаталогах, поэтому find /usr/local -type f -name xyz.csv
также найдет/usr/local/archiv/xyz.csv