czy są jakieś polecenia do wyszukiwania na komputerze Mac za pomocą terminala? Próbowałem użyć grep do wyszukiwania, ale wydaje się to trochę nie reagować i nic się nie pojawia.
Na przykład wpisałbym „grep Files” (nazwa folderu), po prostu drukuje pustą linię i nic się nie dzieje.
Odpowiedzi:
Możesz także użyć tego
mdfind
polecenia, aby przeprowadzić wyszukiwanie za pomocą Spotlight. Więcej informacji tutaj .Służy
mdfind -name searchterm
do pobierania plików o nazwiesearchterm
. Służymdfind searchterm
do wyszukiwania nazwy i zawartości pliku.źródło
Jeśli chcesz tylko znaleźć pliki o określonej nazwie, użyj
find
Stronę podręcznika można znaleźć TUTAJ lub pisząc
man find
w wierszu polecenia terminalu.Zasadniczo find będzie rekurencyjnie szukał pliku spełniającego określone kryteria. Najłatwiejszy przykład:
find . -name file_name -print
Spowoduje to wyszukanie pliku o nazwie „nazwa_pliku” rozpoczynającego się w bieżącym katalogu i wyszukiwania poniżej i wydrukującego pliki o tej nazwie.
find ~ -name ".DS_Store" -delete
To znajdzie wszystkie pliki .DS_Store i je usunie.
Możesz wyszukiwać według nazwy, wyrażenia regularnego, daty. Możesz działać na pliku w dowolny sposób uniksowy z
-exec
predykatem.Możesz także użyć polecenia find jako początku bardziej złożonego zestawu działań. Przykład:
find . -type f -print | egrep -i '\.m4a$|\.mp3$'
Znajdzie wszystkie pliki z rozszerzeniami .m4a lub .mp3
find . -type f -print | egrep -i '\.m4a$|\.mp3$' | wc -l
Poda ci liczbę tych plików.
źródło
-print
jest to jedyny predykat, można go pominąć; dostępne jest również proste globowanie. W ten sposób znalezienie wszystkich.txt
plików w katalogufoo
byłoby wykonane przy pomocyfind foo -name \\*.txt
find .
IS jest rekurencyjne z cwd. Spróbuj wpisaćfind .
swój katalog główny!Jeśli chcesz przeszukać cały folder, po prostu użyj -r na grep:
Dzięki find możesz także używać xargs:
lub w celu upewnienia się, że przeszukujesz dwa pliki jednocześnie i dlatego określono nazwy plików:
źródło
grep
oczekuje zarówno wzorca, jak i specyfikacji pliku. Jeśli go brakuje, wykorzystuje to, co przekazano jako wzorzec, i czeka na wyszukiwanie danych za pomocą standardowego wejścia.Jeśli chcesz użyć bardziej złożonej specyfikacji plików, użyj
find
.źródło
-exec
predykatu wfind
.