Znajdowanie plików z wykorzystaniem polecenia find, potoków i strumieni


(rix98) #1

Hej!
Potrzebuję na Ubuntu napisać w terminalu jedno polecenie, które w katalogu /usr/lib i podkatalogach, znajdzie pliki zawierające w swojej nazwie “mo”, wynik polecenia wrzuci do pliku test.txt i dopisze do tego pliku foldery ktorych nie mogl przejrzec z powodu braku uprawnien. Wszystko ma być w jednym poleceniu
Myślałem nad czymś takim:
find /usr/lib -type f -name ‘mo’ > test.txt | find /usr/lib -name ‘.*’ >> test.txt
ale nie wiem, czy foldery ukryte to jednoczesnie takie do których uprawnien nie mamy…
Dziękuję za wszelka pomoc


(marcin82) #2

Nie no panie … po co tam ta rura :smiley:

Poczytaj o deskryptorach plików. Find normalnie wyświetli nazwy katalogów , do których nie ma dostępu z błędem. Należą one do STDERR (2). Aby dorzucić do “normalnych” wyników błędy, trzeba użyć takiej komendy:

find /usr/lib -type f -iname \*mo\* &> test.txt

Zapis:

&> /ścieżka/cel

jest równoważny z zapisem:

> /ścieżka/cel 2>&1

Lektura:
http://regalis.com.pl/tajemnice-wejscia-wyjscia/
http://dief.republika.pl/stream.html
https://tinyurl.com/ycgswyhd .


(rix98) #3

Bardzo dziękuję za pomoc :slight_smile: