Nie do końca rozumiem przykład podany na podstawie man find
: czy ktoś może podać mi kilka przykładów i wyjaśnień? Czy mogę połączyć w nim wyrażenie regularne?
Bardziej szczegółowe pytanie jest następujące:
Napisz skrypt powłoki changeall
, który ma podobny interfejs changeall [-r|-R] "string1" "string2"
. Będzie znaleźć wszystkie pliki z przyrostkiem .h
, .C
, .cc
, lub .cpp
i zmienić wszystkie wystąpienia string1
do string2
. -r
jest opcją pozostania tylko w aktualnym katalogu lub w tym katalogu.
UWAGA:
- W przypadku nierekurencyjnym,
ls
NIE jest dozwolone, mogliśmy tylko użyćfind
ised
. - Próbowałem,
find -depth
ale NIE było obsługiwane. Właśnie dlatego zastanawiałem się, czy mogę-prune
pomóc, ale nie zrozumiałem przykładuman find
.
EDYCJA 2: Wykonałem zadanie, nie zadawałem szczegółowych pytań, ponieważ chciałbym to zakończyć sam. Ponieważ już to zrobiłem i przekazałem, teraz mogę zadać całe pytanie. Udało mi się też zakończyć zadanie bez użycia -prune
, ale i tak chciałbym się tego nauczyć.
-prune
nie działa tylko na katalogach (ale w przypadku katalogów zapobiega także wprowadzaniu katalogów spełniających ten warunek, tj. tutaj katalogów spełniających ten warunek-name .snapshot
).