Как найти файл на USB от терминала linux без поиска файла .Tra sh? - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь найти файл "myFile.txt" внутри каталога dir. Вот что я попробовал:

find /usbDir/dir -name 'myFile.txt' 

Я пробовал это на пустом USB, но он находил файл. Я посмотрел в каталоге .Tra sh и там был удаленный файл myFile.txt, поэтому я предполагаю, что именно здесь он находит myFile.txt. Есть ли способ поиска myFile.txt без рекурсии? Или есть другой способ игнорировать каталог .Tra sh?

1 Ответ

1 голос
/ 15 января 2020

не рекурсивно:

ls /usbDir/dir/myFile.txt

рекурсивно, но игнорируется .Trash:

find /usbDir/dir -name .Trash -prune -o -name 'myFile.txt'

Объяснение: -o в середине - ИЛИ оператор. Если я произнесу подразумеваемые части, вышесказанное эквивалентно:

find /usbDir/dir '(' -name .Trash -prune ')' -or '(' -name 'myFile.txt' -print ')'

-prune говорит ему прекратить рекурсивный поиск при обнаружении записи .Trash. Там обрезается дерево поиска.

-print - это подразумеваемое действие с правой стороны -or. Он печатает совпадающие имена файлов.

Круглые скобки являются необязательными, как правило, круглые скобки. Они должны быть заключены в кавычки, потому что в противном случае оболочка интерпретирует их вместо команды find.

...