Kopiuj listę plików za pomocą skryptu Bash

Kopiuj listę plików za pomocą skryptu Bash
Bash (Bourne Again Shell) to rodzaj powłoki do wykonywania poleceń i scenariuszy. Bash był rozwiniętą wersją Shell. Skrypt bash to plik, w którym scenariusze jest scenariuszy wielu poleceń powłoki, aby wykonać określone zadanie. W tym artykule zobaczymy, w jaki sposób możemy kopiować wiele plików za pomocą skryptu Bash. Do tego artykułu używam Ubuntu 20.04, aby zademonstrować przykład.

Uwaga: - $ Użytkownik wydrukuje nazwy użytkowników bieżących użytkowników logowania.

Jeśli jesteś ciekawy, jaka wersja Bash Shell jest zainstalowana w systemie, możemy ją sprawdzić za pomocą następującego polecenia.

$ bash --version

Wyjście wersji bash.

Tworzenie i wykonywanie skryptu Bash

Zacznijmy od utworzenia prostego pliku za pomocą dowolnego wybranego edytora. Dla mnie redaktor VI jest wygodny. Aby plik będzie wykonywany, musimy dodać shebang (!#) i lokalizacja interpretera bash na początku skryptu. Stworzyłem tekst.plik txt i dodaj go do bash_demo reż w moim domu Dir, który zawiera tekst do celów demonstracyjnych.

$ Touch Bash_demo.cii
$ vi Bash_demo.cii

Dodaj następujące wiersze w edytorze tekstu do przykładowego demo po utworzeniu pliku; Jeśli nie, edytor utworzy nowy plik w zapisie i wyrzuci.

#!/bin/bash
Tekst CP.txt /tmp /
Echo „Plik skopiowany."

Możemy wykonać skrypt za pomocą ./ Przed plik skryptu, który określa bieżący plik DIR.

$ ./bash_demo.cii

Po wykonaniu skryptu następujący błąd zostanie rzucony w naszym terminalu.

Początkowe wykonanie pliku Bash.

Kiedy domyślnie tworzymy plik, użytkownik nie ma uprawnienia do wykonania pliku. Aby zapewnić użytkownikowi zgodę wykonania, należy wykonać następujące polecenie.

$ chmod +x bash_demo.cii

Wyjście po przyznanym pozwoleniu.

Skopiuj tylko pliki z określonego katalogu

Aby pobrać wszystkie pliki i DIR z określonej ścieżki, użyjemy pętli w skrypcie, a następnie odfiltruj jedyny plik za pomocą Warunki IF. W poniższym przykładzie wykonywamy polecenie CP wykonane tylko wtedy, gdy iterator był plik, który jest określony -f flaga.

#!/bin/bash
dpath =/var/log/nginx/*
dla pliku w $ dpath
Do
Jeśli [[-f $ plik]]
Następnie
cp $ plik/home/$ użytkownik/
w przeciwnym razie
echo „Na danej ścieżce nie ma plików."
fi
zrobione

Skopiuj wszystkie pliki określonych rozszerzeń

W tym przykładzie skopiujemy wszystkie pliki za pomocą .rozszerzenie dziennika. Musimy dodać *.Zaloguj się do ścieżki, aby iterować jedyny plik z .Rozszerzenie dziennika tylko dla pętli.

#!/bin/bash
dla pliku w/var/log/nginx/*.dziennik
Do
cp $ plik/home/$ użytkownik/
zrobione

Skopiuj wszystkie pliki, w tym katalog

W tym przykładzie skopiujemy wszystkie pliki, w tym katalogi, rekurencyjnie. W tym celu musimy po prostu dodać polecenie -r CP, gdzie -r określa rekurencyjne pobieranie katalogu.

#!/bin/bash
dla pliku w/var/log/*
Do
cp -r $ file/home/$ użytkownik/
zrobione

Skopiuj pliki ze ścieżki określonej przez użytkownika

W tym przykładzie skopiujemy pliki z Dir określonego przez użytkownika. Aby to zrobić, użyjemy polecenia odczytu, aby poprosić o ścieżkę od użytkownika, a następnie sprawdź, czy użytkownik podaje ścieżkę do DIR, czy nie, co jest wykonywane przez Flagę -D w stanie. Po zweryfikowaniu DIR użyjemy pętli dla iteracji wszystkich plików i Dir wewnątrz danej ścieżki, a następnie ponownie odfiltruj jedyne pliki za pomocą warunku IF. Jeśli warunek będzie zgodny, zostanie wykonane następujące polecenie CP.

#!/bin/bash
echo „Proszę podać ścieżkę do Dir."
Przeczytaj ścieżkę
Jeśli [[-d $ ścieżka]]
Następnie
dla pliku w $ ścieżka/*
Do
Jeśli [[-f $ plik]]
Następnie
cp $ plik/home/$ użytkownik/
w przeciwnym razie
echo „Na danej ścieżce nie ma plików."
fi
zrobione
w przeciwnym razie
Echo „Wymagana jest ścieżka do reli”
fi

W moim domu mam następujące pliki i dir.

Wyjście przy dostarczaniu ścieżki do pliku.

Wyjście przy zapewnianiu ścieżki lokalizacji DIR.

Po wykonaniu pliku skryptu możemy sprawdzić dane wyjściowe w predefiniowanym Dir w skrypcie. W moim przypadku skopiowałem plik w moim domu, a następujący jest wynik.

Wniosek

W tym artykule dowiadujemy się, jak kopiować pliki za pomocą scenariuszy Bash. Możemy użyć wielu innych operacji, takich jak pętla, if-else itp. Skrypty bash są bardziej skuteczne podczas pracy z wieloma poleceniami do wykonywania określonych zadań. Mam nadzieję, że podoba Ci się ten artykuł na temat kopiowania plików za pomocą skryptu Bash.