Logo

Darmowy hosting online dla stacji roboczych

<Poprzedni | Spis treści | Następne>

Predefiniowane działania

Wykonajmy trochę pracy! Posiadanie listy wyników z naszych odnaleźć polecenie jest przydatne, ale tak naprawdę chcemy działać na pozycjach na liście. Na szczęście, odnaleźć pozwala na wykonywanie działań w oparciu o wyniki wyszukiwania. Istnieje zestaw predefiniowanych akcji i kilka sposobów stosowania akcji zdefiniowanych przez użytkownika. Najpierw przyjrzyjmy się kilku predefiniowanym działaniom:


Tabela 17-6: Wstępnie zdefiniowane akcje wyszukiwania


Opis działania

Opis działania

-delete Usuń aktualnie pasujący plik.


image

-ls Wykonaj odpowiednik ls -dils w pasującym pliku.

Dane wyjściowe są wysyłane na standardowe wyjście.


image

-print Wypisuje pełną ścieżkę pasującego pliku na standardowe wyjście. Jest to akcja domyślna, jeśli nie określono żadnej innej akcji.


image

-quit Wyjdź po dopasowaniu.


image


Podobnie jak w przypadku testów, akcji jest znacznie więcej. Zobacz odnaleźć strona podręcznika, aby uzyskać szczegółowe informacje. W naszym pierwszym przykładzie zrobiliśmy to:


znajdź ~

znajdź ~


który wygenerował listę wszystkich plików i podkatalogów zawartych w naszym katalogu domowym. Spowodowało to utworzenie listy, ponieważ -wydrukować akcja jest implikowana, jeśli nie określono żadnej innej akcji. Zatem nasze polecenie można również wyrazić jako:



znajdź ~ -print

znajdź ~ -print


Możemy użyć odnaleźć aby usunąć pliki spełniające określone kryteria. Na przykład, aby usunąć pliki, które


mamy rozszerzenie pliku „.BAK” (które jest często używane do oznaczania plików kopii zapasowych), możemy użyć tego polecenia:



znajdź ~ -wpisz f -nazwa '*.BAK' -usuń

znajdź ~ -wpisz f -nazwa '*.BAK' -usuń


W tym przykładzie każdy plik w katalogu domowym użytkownika (i jego podkatalogach) jest przeszukiwany pod kątem nazw plików kończących się na .BAK. Po znalezieniu są usuwane.


Ostrzeżenie: Nie trzeba dodawać, że powinieneś zachować szczególną ostrożność podczas korzystania z -kasować działanie. Zawsze najpierw przetestuj polecenie, zastępując

-print akcja dla -delete, aby potwierdzić wyniki wyszukiwania.


Zanim przejdziemy dalej, przyjrzyjmy się jeszcze raz, jak operatory logiczne wpływają na działania. Rozważ następujące polecenie:



znajdź ~ -wpisz f -nazwa '*.BAK' -print

znajdź ~ -wpisz f -nazwa '*.BAK' -print


Jak widzieliśmy, to polecenie będzie szukać każdego zwykłego pliku (-type f), którego nazwa kończy się na .BAK (-name '*.BAK') i wyśle ​​względną ścieżkę każdego pasującego pliku na standardowe wyjście (-print). Jednak powód, dla którego polecenie działa w taki sposób, jest określony przez logiczne relacje pomiędzy każdym z testów i działań. Pamiętaj, że domyślnie istnieje dorozumiana relacja -i pomiędzy każdym testem a działaniem. Moglibyśmy również wyrazić polecenie w ten sposób, aby łatwiej było dostrzec logiczne zależności:



znajdź ~ -wpisz f -i -nazwa '*.BAK' -i -print

znajdź ~ -wpisz f -i -nazwa '*.BAK' -i -print


Po całkowitym wyrażeniu naszego polecenia przyjrzyjmy się, jak operatory logiczne wpływają na jego wykonanie:


Test/działanie jest wykonywane tylko wtedy, gdy...

Test/działanie jest wykonywane tylko wtedy, gdy...

-wydrukować -type f i -name '*.BAK' mają wartość true


-nazwa '*.BAK' -Type f jest prawdą


-Type f Jest zawsze wykonywany, ponieważ jest to pierwszy test/akcja w pliku

-i związek.



Ponieważ logiczna relacja pomiędzy testami i akcjami określa, które z nich zostaną wykonane, widzimy, że kolejność testów i akcji jest istotna. Na przykład, gdybyśmy zmienili kolejność testów i działań tak, aby -wydrukować akcja była pierwsza, polecenie zachowywałoby się zupełnie inaczej:



znajdź ~ -print -i -wpisz f -i -nazwa '*.BAK'

znajdź ~ -print -i -wpisz f -i -nazwa '*.BAK'


Ta wersja polecenia wydrukuje każdy plik ( -wydrukować akcja zawsze ma wartość true), a następnie sprawdź typ pliku i określone rozszerzenie pliku.


Najlepsze przetwarzanie w chmurze dla systemu operacyjnego w OnWorks: