Jak używać Xargs z Find in Linux

Jak używać Xargs z Find in Linux
Ten samouczek wyjaśnia, jak korzystać z poleceń XARG i znaleźć do wykonania połączonych operacji.

Po przeczytaniu tego samouczka możesz wyszukiwać pliki za pomocą polecenia Znajdź i wykonać określone polecenie na podstawie dopasowanych wyników.

Instrukcje i przykłady są pomocne dla większości rozkładów Linux. Treść jest zoptymalizowana zarówno dla nowych, jak i doświadczonych użytkowników Linuksa.

Wszystkie kroki opisane w tym artykule zawierają zrzuty ekranu, aby ułatwić wszystkim użytkownikom Linux do zrozumienia i zastosowania.

Przykłady użytkowania zawarte w tym artykule są następujące:

  • Znajdź i usuń pliki za pomocą rozszerzenia (typ pliku).
  • Znajdź i usuń pliki według nazwy.
  • Znajdź i zmień uprawnienia plików w oparciu o bieżące uprawnienia.

Krótkie wprowadzenie do Find and Xargs Polets

Xargs polecenie, w połączeniu z innymi poleceniami, takimi jak znajdować, używa wyjścia pierwszego polecenia jako argumentu.

Na przykład uruchommy znajdować polecenie do identyfikacji plików z określonym rozszerzeniem lub typem pliku. Możemy dodać Xargs polecenie wykonania akcji dla wszystkich plików pasujących do rozszerzenia określonego znajdować.

Jak widać w poniższym wierszu, rura oddziela polecenie 1 i polecenie 2, gdzie polecenie 1 może być dowolnym polecenie LS, i polecenie 2, w tym polecenie Xargs, a następnie konkretne działanie, takie jak kot.

[Polecenie 1] | [Polecenie 2]

Obowiązującym przykładem byłby:

LS | Xargs Cat

To polecenie wyświetli wszystkie pliki w bieżącym katalogu. Wówczas dane wyjściowe (wymienione pliki) będą używane przez XARGS jako argument, a ich treść zostanie wydrukowana zgodnie z instrukcją Xargs Cat. Zobacz następujący zrzut ekranu:

Jak znaleźć i przenosić pliki za pomocą XARGS

Pierwsza sekcja tego samouczka wyjaśnia, jak używać poleceń Find i XARGS do wyszukiwania i przenoszenia plików pasujących do warunku, w tym przypadku typu pliku.

Zacznijmy od znalezienia plików za pomocą rozszerzenia i przeniesienia ich do konkretnego katalogu za pomocą Xargs.

Przed rozpoczęciem uruchom LS polecenie wyświetlania plików i katalogów w moim wymienionym podkładce testDir.

LS

Jak widać, istnieją różne typy plików, w tym .tekst, .C, i pliki bez rozszerzeń. Zwróć także uwagę na Tutorialdir informator.

Załóżmy, że chcesz przenosić pliki z określonym rozszerzeniem do katalogu. Składnia jest następująca:

znajdować -nazwa '*.'-Type f | Xargs Mv -t

W poprzedniej składni, -nazwa Opcja poprzedza nazwę lub warunek pliku na podstawie nazwy pliku. -typ f Opcja określa, że ​​komenda Znajdź dotyczy plików, a nie katalogów. -T Opcja przed katalogiem docelowym służy do zdefiniowania katalogu docelowego. Zwróć uwagę na kartę wieloznaczną (*) przed rozszerzeniem, instruując polecenie, aby wyszukać wszystkie pliki określonego rozszerzenia niezależnie od nazwy.

Tak więc, jeśli chcesz przenieść wszystko .tekst Pliki do nazwanego katalogu Tutorialdir, Wykonaj następujące polecenie:

znajdować . -nazwa '*.txt '-Type f | xargs mv -t samoorialdir

Jak widać, po uruchomieniu LS polecenie dwukrotnie, pliki zostały przeniesione z bieżącego katalogu do Tutorialdir Podkazkodmienia.

Składnia jest taka sama dla wszystkich typów plików. Powtórzmy to, tym razem .C akta:

znajdować . -nazwa '*.C '-Type f | xargs mv -t samoorialdir

Pierwsze polecenie LS pokazuje trzy .C Pliki w bieżącym katalogu. Po uruchomieniu polecenia Znajdź z Xargs, polecenie drzewa pokazuje wszystko .C Pliki zostały przeniesione do Tutorialdir katalog, gdzie .tekst Pliki zostały przeprowadzone w poprzednim przykładzie.

Znajdź i usuń pliki i katalogi według nazwy z XARGS

Składnia do znalezienia i usuwania plików za pomocą XARGS jest następująca:

znajdować -nazwa |. Xargs Rm

Tam jest to katalog nadrzędny, które wyszukujesz pliki i to nazwa pliku, który chcesz znaleźć i usunąć.

Zobaczmy bieżący scenariusz na poniższym zrzucie ekranu:

LS

W pierwszym przykładzie wybierz pliki według typu, jak wykonano w poprzedniej sekcji, aby je usunąć, jak pokazano poniżej:

znajdować . -nazwa "*.C "| Xargs Rm

Jak widać powyżej, wszystko .C Pliki zostały pomyślnie usunięte.

Teraz scenariusz jest następujący:

LS

W bieżącym przykładzie użyję Wildcard, aby usunąć wszystkie pliki, których nazwa zaczyna się od „plik”, Niezależnie od kontynuacji nazwy.

znajdować . -Nazwa „Plik*” | Xargs Rm

Do tej pory w tym artykule wyjaśniono, jak radzić sobie z plikami. Teraz zobaczmy, jak korzystać z Find i Xargs z katalogami. W nowym scenariuszu istnieje pięć nowych katalogów: Dir1, Dir2, Dir3, Dir4, I Dir5, Jak pokazano na poniższym obrazku:

LS

Zakładając, że chcesz usunąć wszystkie katalogi z nazwami zaczynającymi się od „reż”, Uruchom to samo polecenie. Jednak po poleceniu RM dodaj -R Flaga używana do radzenia sobie z katalogami, jak pokazano na poniższym rysunku:

znajdować . -Nazwa „reż*” | Xargs Rm -r

Znajdź i usuń pliki na podstawie uprawnień

W tej sekcji opisano znalezienie plików za pomocą określonych uprawnień i zmiana ich za pomocą XARGS.

Jak widać poniżej, pliki coś 1.txt, coś2.tekst, I coś3.tekst mają pełne uprawnienia dla wszystkich (777).

ls -l

Składnia do znalezienia plików za zgodą i ich zmiany jest pokazana poniżej:

znajdować -trwała ondulacja |. Xargs Chmod

Aby znaleźć wszystkie pliki z pełnymi uprawnieniami dla wszystkich (777) w bieżącym katalogu i zmień je na pełne uprawnienia dla właściciela oraz odczyt i wykonaj uprawnienia dla użytkowników grupy i innych (755), uruchom polecenie wykonane w następujący sposób:

znajdować . -Perm 777 | Xargs Chmod 755

Wniosek

Jak widać, polecenie Xargs, w połączeniu z poleceniem Find, jest przydatne do zadań masowych lub określonych zadań, gdy nie znasz lokalizacji pliku. Oba polecenia są łatwe do wdrożenia i mogą być włączone przez nowych użytkowników, aby ułatwić swoje wrażenia z terminalem Linux. Znajdź, a Xargs są podstawowymi poleceniami Linux, który każdy użytkownik Linux musi wiedzieć, jak złożyć wniosek. Xarg można łączyć z innymi podstawowymi poleceniami, takimi jak LS. Wyjaśnione powyżej instrukcje są pomocne dla wszystkich rozkładów Linuksa.

Sprawdź więcej artykułów, aby uzyskać więcej wskazówek i samouczków Linux.