Polecenie FINK -EXEC na Linux

Polecenie FINK -EXEC na Linux

Twój system Linux składa się z tysięcy plików. Ręczne poszukiwanie ich jest kłopotliwe. W takich przypadkach system Linux oferuje dwa odrębne polecenia do znalezienia określonego pliku: polecenie lokalizacji i polecenie Znajdź. W szczególności polecenie Find to świetne narzędzie, gdy chcesz określić atrybuty pliku i dopracować wyszukiwanie pliku. Korzystając z polecenia FINK, możesz nawet działać w pliku, który znajdziesz za pomocą argumentu exec. W tym samouczku będziemy omawiać polecenie Find -Exec.

Polecenie Znajdź

Polecenie Find jest wolniejsze niż polecenie lokalizacji, ale przeszukuje cały system plików na żywo! Ponadto, za pomocą polecenia Find, możesz dostosować wyszukiwanie za pomocą dużej liczby atrybutów. Oznacza to w języku angielskim, że możesz dostosować wyszukiwanie za pomocą prawie dowolnego parametru, który chcesz. Na przykład możesz wyszukać pliki za pomocą nazwy pliku, rozmiaru pliku, uprawnienia pliku, czasów modyfikacji pliku itp. Zasadniczo jest to bardzo przydatne polecenie!

Podstawowy format polecenia Find jest następujący:

Znajdź [miejsce do wyszukiwania]

Były:

Znajdź / -name Secret.tekst

Tutaj / reprezentuje miejsce do wyszukiwania żądanego pliku, i poprosiliśmy go o wyszukiwanie pliku o nazwie Secret.tekst.

Znajdź Exec

Najlepszą cechą komendy Find jest jego argument EXEC, który pozwala użytkownikowi Linux wykonać dowolne polecenie znalezionych plików. Innymi słowy, działania można wykonywać w znalezionych plikach.

Polecenie FINK -EXEC przyjmie następujący format:

Znajdź [ścieżkę] [argumenty] -Exec [Command] [Umakiem zastępczy] [Delimiter]

Musimy dowiedzieć się o kilku rzeczach, zanim będziemy mogli użyć argumentu Exec:

  1. nazywa się symbol zastępczy. Ten symbol zastępczy będzie utrzymywał wynik znaleziony przez znalezisko.

Jeśli więc powiedzmy, że szukamy pliku o nazwie Secret.TXT, wtedy napisalibyśmy:

Znajdź / -name Secret.tekst

To znajdzie całą masę plików w moim systemie, gdy chcę wykonać polecenie. Zamiast zapisywać nazwę znalezionego pliku, zastąpimy ją nim zastępcą .

Na przykład,

Znajdź / -name 'Secret.txt '2> /dev /null -exec cat \;

Notatka: W tym przypadku pozwól mi również wskazać, co robi 2> /dev /null. 2 oznacza błąd standardowy, który chcemy zignorować. W ten sposób wysyłamy go do /dev /null. Zasadniczo bierzemy błędy i wyrzucamy je.

Na razie zignorujmy \; rozstać się i skoncentruj się na symbolu zastępczym. Dlaczego dodaliśmy po słowa „Cat”? Cóż, znajdzie plik, którego szukam, a potem, gdy go znajdzie, przekazuje plik do argumentu Exec tak:

-exec cat \;

Lub

-Exec Cat/Home/Kalyani/Secret.tekst \;

Jest to więc symbol zastępczy dla wyników wyrzuconych przez polecenie Find!

  1. \; jest ogranicznikiem.

\; jest ogranicznikiem. Ten konkretny ogranicznik jest tym, jak może się skończyć argument. Kiedy się kończy w ten sposób, podjęto działanie w każdym wyniku, który znajduje.

Na przykład stworzyłem trzy tajne.Pliki TXT: Secret.TXT, Secret2.txt i secret3.tekst.

Teraz wydam następujące polecenie:

Znajdź / -name 'Secret*.txt '2> /dev /null -exec cat \;

Jak widać na zdjęciu, znalazł trzy pliki i wyrzucił ich zawartość jeden po drugim. Co więc \; Do? Cóż, zapewnia, że ​​w każdym pliku podjęto działania. W takim przypadku mamy trzy pliki. Polecenie CAT jest najpierw zastosowane do pierwszego wyniku: Secret2.tekst. Następnie jest stosowany do drugiego wyniku: Secret3.tekst. Wreszcie jest stosowany do trzeciego wyniku: Secret.tekst.

Tutaj, kiedy używasz -exec cat \; argument, Wykonuje następujące czynności:

Cat Secret2.tekst;
Cat Secret3.tekst;
Sekret kota.tekst;
  1. \+ to kolejny ogranicznik.

To jest inny rodzaj ogranicznika. Jeśli i kiedy jest to używane, podejmowane jest działanie w wynikach znalezionych wyników.

Na przykład:

Znajdź / -name 'Secret*.txt '2> /dev /null -exec ls \+

Poniższy obraz pokaże różnicę między \; i \+:


Tutaj, kiedy ty Użyj -exec ls \; argument, Wykonuje następujące czynności:

LS Secret2.tekst;
LS Secret3.tekst;
LS Secret.tekst;

Chwila -EXEC \+ Argument wykonuje następujące:

LS Secret2.txt secret3.txt secret.tekst;

Wiele EXEC

Teraz wiele argumentów -exec można również przekazać do polecenia.

Format ogólny będzie następujący:

Znajdź [ścieżka] [argumenty] -Exec [Command_1] [Placeholder] [Delimiter] -Exec [Command_2] [Placeholder] [Delimiter]… -Exec [Command_N] [Umienny Ubezpieczenie] [Delimiter] [Delimiter]

Na przykład:

Znajdź / -name 'Secret*.txt '2> /dev /null -exec ls \; -exec cat \;

Tutaj, jak widać, wymaga pierwszego wyniku i przekazuje go przez pierwsze polecenie. Następnie przechodzi przez drugie polecenie, a następnie przechodzi do drugiego wyniku.

Zasadniczo wyniki są przekazywane w następujący sposób:

LS Secret2.tekst; Cat Secret2.tekst;
LS Secret3.tekst; Cat Secret3.tekst;
LS Secret.tekst; Sekret kota.tekst;

Inny przykład:

Znajdź / -name 'Secret*.txt '2> /dev /null -exec ls \+ -exec cat \+

W takim przypadku wyniki są przekazywane w następujący sposób:

LS Secret2.txt secret3.txt secret.tekst; Cat Secret2.txt secret3.txt secret.tekst;

Wniosek

Linux to wspaniały system z plikami gazillionowymi. Jednak wiąże się to tylko z dwoma odrębnymi poleceniami do przeszukania stogu siana dla naszej igły. Lepszym z tych dwóch poleceń jest polecenie Find. Polecenie Znajdź wyszukiwanie w całym systemie plików, aby zajęło to trochę czasu. Ponadto może podejmować działania dotyczące znalezionych wyników. Oznacza to, że możesz zastosować różne polecenia na znalezionych plikach. Jeśli chcesz je przenieść, jeśli chcesz je usunąć, a nawet zrobić szalone rzeczy z wyników polecenia Find, możesz; Twoja wiedza jest limitem. Więc następnym razem, aby coś zrobić z plikiem, możesz to zrobić za pomocą polecenia Find -Exec! Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły z Linux, aby uzyskać więcej wskazówek i informacji.