Chcę znaleźć plik na moim Macbook z pliku: abc.dmg
. Próbowałem użyć reflektora, ale go nie znalazłem. Kiedy próbowałem znaleźć i użyłem find -name abc.dmg -path /
:, otrzymałem błędy z powrotem.
Jaka jest poprawna składnia do znalezienia pliku według nazwy pliku za pomocą polecenia find na terminalu Mac OSX?
Odpowiedzi:
W najprostszej formie
find
przyjmuje jeden parametr: ścieżkę. W swojej faktycznie użytecznej formie podąża ścieżką, po której następuje zawężenie kryteriów.Dlatego chcesz:
find
(program)/
(ścieżka) i-name abc.dmg
(kryteria).źródło
find
znaczenie . Jeśli tak musi byćfind [path]+ [selection, grouping, and actions]
.find . -name '*.csv'
na przykład pracował dla mnie z symbolami wieloznacznymi. OP mógłby również użyćfind . -name '*.dmg'
do sprawdzenia swojego bieżącego katalogu, zakładając, że był w/
.źródło
mdfind
Polecenie wykorzystuje bazę danych Spotlighthttp://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/mdfind.1.html
źródło
Możesz użyć
locate
polecenia.źródło
osx
tag. slocate db nie jest domyślnie wypełniany.locate
imdfind
oba zawiodą, prawdopodobnie plik nie znajduje się na twoim komputerze. Lub nie ma nazwy, jak myślisz, jak się nazywa. być może szukanie WSZYSTKICH DMG może być twoim następnym krokiem?Najprostszym sposobem (jestem pewien, że już próbowałeś, ale hej, pozwól, że i tak dodam go do wątku) jest wprowadzenie abc.dmg w polu wyszukiwania w prawym górnym rogu dowolnego okna wyszukiwarki, a następnie wybierz „Plik” Nazwa ”z wyświetlonych opcji na pasku wyszukiwania.
Nie ma potrzeby terminala.
Pamiętaj również, że Spotlight indeksuje tylko katalogi określone w panelu sterowania Spotlight, a abc.dmg może nie znajdować się w jednym z tych katalogów.
Popraw mnie, jeśli się mylę, ale myślę, że polecenie find musi wiedzieć, co wypisać:
... powinien wydrukować wszelkie wyniki na terminalu (w tym błędy uprawnień).
Jeśli nie chcesz błędów uprawnień i chcesz przeszukać inne katalogi użytkowników, to:
źródło
Możesz użyć następujących funkcji wiersza poleceń, aby szybko znaleźć i otworzyć odpowiedni plik. Uważam to za łatwiejsze niż wpisywanie długiego ciągu zapytania w oknie reflektora.
Dodaj następujące funkcje w
~/.bash_aliases
.}
Teraz albo
source ~/.bash_aliases
otwórz nowe funkcje ładowania terminala. Aby wyszukać pliki zawierające słowa, ciasto i 2016 w dowolnym miejscu w nazwie pliku, wykonaj następujące czynności:Nie ma potrzeby dodawania lub dołączania
*
do zapytania jako wzorca wyszukiwania,'*$1*'
już oznacza on wpis wieloznacznej karty na początku i na końcu zapytania. Dodatkową wartościącd
jest rozróżnianie wielkości liter i ignorowanie znaków diakrytycznych, npfred
. Zwróci zarówno Frédéric, jak i FrEDeric.findpaper
ograniczy wyszukiwanie do wyników pod określoną ścieżką (rekurencyjną), jednocześnieopenpaper pie*201
otworzy wynik wyszukiwania (lub pierwszy z wielu wyników) lubopenpaper pie*201 3
otworzy trzeci wpis wyników. Aby uniknąć otwierania skryptów bash lub innych plików innych niż dokumenty, możesz ograniczyć zawartość pliku przez dodatkowe atrybuty wyszukiwania. Zobacz Składnia wyrażenia zapytania o metadane i https://ss64.com/osx/mdfind.html, aby dowiedzieć się więcej o korzystaniu z innych operatorów wyszukiwania.źródło
Przechwyć listę każdego pliku na dysku jako root z /
Cat cały plik przez grep, aby przeszukać cały dysk:
Używaj wyrażeń regularnych, aby wyświetlać tylko pliki .jpg i .dmg:
Wynik:
...itp. Niestety przechwyci również wszystkie zamontowane dyski, więc najlepiej wysunąć te Time Machine, ponieważ mają wiele linków. Więc w innym oknie biegnę,
watch tail -n 10 ~/file-list.txt
co pokazuje mi, co się dzieje w moim nikczemnym hacku!źródło
sudo find / > ~/file-list.txt
wydaje się lepsze niż uruchamianie całej powłoki jako root. (2)find *
pominie ukryte (kropkowe) obiekty (jeśli istnieją) w/
. (3)&>
to bashism. (4) Bezużyteczne użyciecat
. (5)grep abc.dmg
wydrukuje np/foo/bar/123abcXdmg456/baz/whatever
. // Jedną dobrą rzeczą, jaką twoja odpowiedź przynosi do tego wątku (a inna odpowiedź nie) jest podejście, w którym użytkownik uruchamia sięfind
raz, a następnie wielokrotnie wykorzystuje zapisany wynik bez ponownego sprawdzania systemu (-ów) plików. Ta potencjalna zaleta nie jest jednak akcentowana.