b.YISK blog

co nieco z marnego życia Szymona Barczaka

Niepełna kompatybilność Uniksa i Linuksa

z jednym komentarzem

Czytam sobie książkę “Unix dla początkujących i zaawansowanych”. Wiadomo, że Linux jest jedną z alternatyw Uniksa. Dlatego warto znać i Uniksa. Podoba mi się ta książka, gdyż opisuje budowę tego OS-a. Można tu przeczytać o tym jak wyglądają i-nody, do czego służą, jak działa jądro etc. Jedyną rzeczą, której żałuję jest to, że nie wszystkie polecenia z książki działają w moim systemie. Część aplikacji uniksowych nie ma swych odpowiedników w Linuksie. Tak, są programy zastępcze, ba, są nawet lepsze, ale to co :P

Mam podany przykład na wyszukanie i usunięcie danych plików:

find \ (-name core -o name “*.out”) -atime +7 -exec rm {} \;

gdzie pierwszy argument oznacza miejsce poszukiwań, kolejny zawiera nazwę poszukiwanych plików core albo *.out etc. Ostatni argument powinien nakazywać usunięcie plików, jeśli takowe zostaną znalezione. Nie działa :P

touch some some1 some2 some3
find . -iname “some*” -exec rm {} \;

Wypluło coś takiego:

BTW Ładny mam motyw, nie?

Spróbowałem zatem zrobić to bardziej “linuksowo”:

find . -iname “some*” | rm
rm: missing operand

Zrozumiałem co jest grane, ale wolałem się upewnić. Zajrzałem do “Linux. Leksykon kieszonkowy.” Tak, rm nie obsługuje stdin, ani stdout, choć to drugie to chyba logiczne :)

Szkoda.

b.YISK

Written by b.YISK

wrzesień 2, 2008 @ 19:49

Jedna odpowiedź

Subscribe to comments with RSS.

  1. “Tak, rm nie obsługuje stdin”

    i dlatego powstał program xargs

    find . -iname “some*” | xargs rm

    i po kłopocie

    anti

    listopad 23, 2008 at 20:42


Dodaj komentarz