Wyszukiwanie ze locate
znalezieniem ścieżek w systemie plików.
Często znasz a priori, że interesują Cię tylko pliki lub tylko katalogi.
Wyszukiwanie „zlokalizuj” często zwraca wiele wyników. Przydałoby się zawrzeć tylko jeden z typów w wyniku, ponieważ pomaga to skrócić wynik.
Istnieje jednak bardziej interesujący argument, aby pominąć pliki lub katalogi: ponieważ lista ścieżek wyników może być niejednoznaczna - nie tylko w teorii.
Poniższy przykład jest przypadkiem z prawdziwego świata i nie jest niczym niezwykłym:
$ locate --regex --basename "xfce4-keyboard-overlay$"
/usr/local/bin/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay
Ok, znaleźliśmy coś! Ale ... pliki lub katalogi?
$ file /usr/local/bin/xfce4-keyboard-overlay
/usr/local/bin/xfce4-keyboard-overlay: bash script
To jest plik ...
$ file /usr/local/share/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay: directory
podczas gdy drugi nie jest.
Ta dwuznaczność sprawia, że długie listy ścieżek są trudne do odczytania, więc byłoby naprawdę miło odfiltrować katalogi, na przykład używając opcji linii komend dla locate
.
Czy coś takiego istnieje? Nawet jeśli filtr katalogów jest inny niż lokalizacja?
Przynajmniej można użyć skryptu do iteracji wszystkich nazw plików w celu sprawdzenia - co może być powolne.
while
wyciągu?