команда linux find не работает должным образом - PullRequest
2 голосов
/ 27 декабря 2010

Я использую Linux (Ubuntu), я пытаюсь найти файлы, но он не работает должным образом.Я имею в виду, что я создал несколько файлов в (моя структура каталогов) World / India / Maharashtra / Pune / filename.xml

, когда я использую команду поиска, например "find / home / lokesh / Desktop / Testing_India2 / Test/ World / India / Maharashtra / -name имя файла * .xml -mmin -3000 ".Это дает результат отлично.Но, когда я использую ту же команду на уровне мира или Индии, я имею в виду «найти / home / lokesh / Desktop / Testing_India2 / Test / World / -name filename * .xml -mmin -3000».это не дает никакого результата.

У меня есть много справочников в Индии, а также на уровне Махараштры, и я могу быть в Махараштре и внутри нее.Я должен найти все файлы, созданные во всех каталогах.И я смонтировал всю папку с другой машины. (Я имею в виду состояние с другой, а с другой).

Если кто-то знает, как решить эту проблему, пожалуйста, ответьте мне как можно скорее.

Спасибо.

Ответы [ 3 ]

13 голосов
/ 27 декабря 2010

Двойная кавычка вашей строки поиска и -L, чтобы она следовала по символическим ссылкам:

find -L /home/lokesh/Desktop/Testing_India2/Test/World/ -name "filename*.xml" -mmin -30000
3 голосов
/ 10 августа 2012

Да, как уже упоминалось, вы должны удвоить свой аргумент -name или использовать обратную косую черту до *.Причина того, что он не работает из одного каталога, но работает нормально в других каталогах, заключается в том, что символ * используется для генерации имени файла вашей оболочкой.Это, конечно, происходит перед выполнением команды find.Поэтому, если у вас есть файл, который соответствует шаблону filename*.xml в вашем текущем каталоге, он будет заменен перед выполнением find, а это не то, что вам нужно.С другой стороны, если в текущем каталоге нет совпадения с шаблоном, символ * передается команде поиска без изменений.Используя qouting, вы защищаете строку от генерации имени оболочки.

С уважением

3 голосов
/ 20 апреля 2011

Это то, с чем я столкнулся сегодня раньше, когда использовал подстановочный знак '*'. Я не мог заставить его непрерывно перемещаться по подкаталогам, если я не избежал * с.

Дайте попробовать:

find -L /home/lokesh/Desktop/Testing_India2/Test/World/ -name filename\*.xml -mmin -30000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...