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.