Folder inteligentny Wyłącz folder
Ostatecznie chcę, aby wynikiem tego polecenia find był inteligentny folder.
Kryteria nie są tak skomplikowane:
- nazwa powinna brzmieć „README.md”
- typ powinien być plikiem
- ścieżka nie powinna zawierać „node_modules”
find /Users/me/Documents -type f -name README.md -not -path "*/node_modules/*"
Problem polega na tym, że na liście operatorów kryteriów inteligentnych folderów brakuje does not contain
opcji.
Dostępne opcje to:
- mecze
- zawiera
- Zaczyna się z
- kończy się na
- jest
- nie jest
Czy można to osiągnąć, a jeśli tak, to w jaki sposób?
Edytuj 1
Przekonałem się, że przytrzymując klawisz opcji, mogę dodać klauzulę negacji do kryteriów wyszukiwania inteligentnych folderów, ale nie mogę wykluczyć folderu node_modules. Nie jest jasne, które kryteria zastosować, ale żadne z tych, które próbowałem, nie działają:
- Pojemnik na dokumenty
- Zawierające nazwy folderów
- Nazwa folderu
Próbowałem połączyć je z następującymi operatorami:
- zawiera
- mecze
oraz z następującymi warunkami:
- node_modules
- node_modules
w przypadku gdy obsługuje wyszukiwanie z użyciem symboli wieloznacznych.
Próbowałem wszystkich kombinacji powyższych filtrów, operatorów i warunków.
Dokumentacja na ten temat jest bardzo uboga.
źródło
Odpowiedzi:
Wygląda na to, że kMDItemPath nie może zrobić tego, czego potrzebujesz:
no-results-in-spotlight-in-searches-against-kmditempath
Niektóre potencjalne alternatywy są omówione tutaj:
how-to-locate-a-file-in-spotlight-using-folder-and-file-name
źródło
Istnieje obejście, ale nie jest bardzo ładne. Będzie to jednak służyć Twoim celom, jeśli chcesz uzyskać dostęp do plików README w jednym folderze (przy użyciu określonych kryteriów) i mieć pojęcie o tym, skąd pochodzą.
Chodzi o to, aby użyć skryptu powłoki, aby znaleźć odpowiednie pliki, a następnie zebrać aliasy do każdego pliku w jednym katalogu. Następnie zmieniamy nazwę aliasów, aby powiedzieć nam, do którego katalogu macierzystego należy oryginalny plik.
Applescript, aby to zrobić, znajduje się poniżej. Wygląda tu brzydko, ale spróbuj wkleić go do Script Editor i skompilować, a powinieneś być w stanie zobaczyć logikę.
źródło