Я пытаюсь заставить GNU находить исключенные записи ДО указанного имени файла.
Возьмите этот пример дерева:
./foo
./foo/another.txt
./foo/bar
./foo/bar/world
./foo/bar/world/test.txt
./foo/bar/world/hello.txt
(Там будет куча других файлов в world
и другие каталоги , а также, поэтому я не просто искал hello.txt
Я хочу сопоставить все, кроме «test.txt» и его родительских каталогов.
Выходные данные должны быть просто foo/bar/world/hello.txt
.
Эта команда дает правильные результаты, но она довольно грязная и выдаст неправильные результаты, если будет несколько каталогов с одинаковыми именами:
find * ! -name test.txt -a ! -name foo -a ! -name bar -a ! -name world