Wiele poleceń linuxowych pozwala ignorować kolejność opcji.
np. ls -l -a = ls -a -la
ale okazuje się, że w find tak nie jest.
i jeżeli zrobisz tak: find -name nazwa_pliku -delete to usuniesz konkretny plik.
A jeżeli zrobisz tak: find -delete -name nazwa_pliku to usuniesz wszystkie pliki z katalogu
#informatyka #linux
Źródło:
https://qr.ae/p2PS6s
Most harmful command
A co uważasz o
alias cd=ls
@entropy_ śmieszkowy alias się robi świadomie, a przy wykonywaniu pracy na plikach z find można się jednak pomylić
@Fausto niekoniecznie świadomie
Ty myślisz że dlaczego admini hejto się nie odzywają odkąd owca został modem?
Owca zresetował im hasła do kont, wpisał to w konsolę i pasie się od tamtej pory sam
find --help
Składnia: find [-H] [-L] [-P] [-Opoziom] [-D opcje_diagnostyczne] [ścieżka...] [wyrażenie]
Domyślna ścieżka to aktualny katalog; domyślne wyrażenie to -print.
Wyrażenie może składać się z: operatorów, opcji, testów i akcji.
Operatory (malejący priorytet; jeśli nie ma żadnego, przyjmuje się -and):
to zadziała w taki sam sposób również dla akcji `-print` i porównywanie do kolejności opcji przy wywołaniu ls jest trochę chybione bo tutaj buduje się wyrażenie a nie przekazuje opcje. zgodnie z tym co na końcu cytatu `find -print -name cośtam` to jest `find <wyrażenie>` gdzie <wyrażenie> == `-print -and -name cośtam` i żeby móc powiedzieć jaki jest wynik `-and` trzeba "wyliczyć" obie składowe, zaczynając od lewej strony.
nie pamiętam żebym kiedykolwiek spotkał pełnowyrazowe opcje wywołania poprzedzone pojedynczym myślnikiem poza właśnie findem, więc to od razu daje do myślenia.
@wonsz tak jak napisał w tym artykule, tu chodzi raczej o przyzwyczajenie z innych poleceń, przez co możesz się pomylić wykonując jakieś proste działania na plikach. Jednym się zapali lampka, a inni z automatu napiszą opcję przed nazwą pliku
@Fausto Find jest generalnie skopanym poleceniem, ale jest tak stare, że nic się z tym nie da zrobić. Poza używaniem fd-find.
Zaloguj się aby komentować