Odpowiedzi:
Oto polecenie, którego możesz użyć:
find -type f -or -type d
. I get an error.. find: ścieżki muszą poprzedzać wyrażenie: `.. Wiesz, dlaczego?
-wcześniej or?
tl: dr
posługiwać się find . -name "*string*" -type f -o -name "*string*" -type d
wyjaśnienie
Komenda -o orcałkowicie argumentuje argumenty po ścieżce plików, na przykład find . -name "*string*" -type f -o -type doblicza find . (-name "*string*" -type f) -o (-type d). Z tego powodu musisz określić
Większość użytkowników będzie chciała czegoś, co wygląda
find . -name "*string*" -type f -o -name "*string*" -type d
który oblicza jako
find . (-name "*string*" -type f) -o (-name "*string*" -type d)
znajdź szczegóły składni
-name "*string*"wyszukuje nazwy zawierające ciąg znaków w stringdowolnym miejscu.
Jeśli używasz GNU find, następujące rozwiązanie może ci się spodobać:
find -type d,f
Zobacz man findpo więcej szczegółów:
Aby wyszukać więcej niż jeden typ na raz, możesz podać połączoną listę liter typu oddzielonych przecinkiem
,(rozszerzenie GNU).
GNU findwersji 4.7.0 .. Wydaje się, że nie obsługuje ,. Komunikat o błędzie mówi, żefind: Arguments to -type should contain only one letter.
find -type f -o -type ddla alternatywy zgodnej z POSIX.