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 or
całkowicie argumentuje argumenty po ścieżce plików, na przykład find . -name "*string*" -type f -o -type d
oblicza 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 string
dowolnym miejscu.
Jeśli używasz GNU find, następujące rozwiązanie może ci się spodobać:
find -type d,f
Zobacz man find
po 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 find
wersji 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 d
dla alternatywy zgodnej z POSIX.