Програмиране на BASH

Копирайте списък с файлове, използвайки Bash Script

Копирайте списък с файлове, използвайки Bash Script
Bash (Bourne Again Shell) е вид черупка, която е за изпълнение на команди и скриптове. Bash беше разработена версия на черупката sh. Bash Script е файл, в който са изпълнени множество команди на черупки за изпълнение на определена задача. В тази статия ще видим как можем да копираме множество файлове с помощта на bash скрипт. За тази статия използвам Ubuntu 20.04, за да демонстрираме примера.

Забележка: - $ USER ще отпечата потребителските имена на текущите потребители.

Ако ви интересува каква версия на bash shell е инсталирана в системата, можем да я проверим, като използваме следната команда.

$ bash - версия

Изход на Bash версия.

Създаване и изпълнение на Bash Script

Нека започнем със създаването на прост файл, използвайки всеки редактор по ваш избор. За мен редакторът vi е по-удобен. За да направим файла изпълним, трябва да добавим shebang (!#) и местоположението на интерпретатора на bash в началото на скрипта. Създадох текст.txt файл и го добавете към bash_demo dir в моя домашен dir, който съдържа малко текст за демонстрационни цели.

$ touch bash_demo.ш
$ vi bash_demo.ш

Добавете следните редове във вашия текстов редактор за примерна демонстрация след създаване на файл; ако не сте, редакторът ще създаде нов файл при запис и излизане.

#!/ bin / bash
cp текст.txt / tmp /
ехо „Файлът е копиран.”

Можем да изпълним скрипта с помощта на ./ пред файла на скрипта, който определя текущия dir файл.

$ ./ bash_demo.ш

Когато изпълним скрипта, в нашия терминал ще се появи следната грешка.

Първоначално изпълнение на bash файл.

Когато създаваме файл по подразбиране, потребителят няма разрешение за изпълнение на файла. За да се предостави разрешение за изпълнение на потребителя, трябва да се изпълни следната команда.

$ chmod + x bash_demo.ш

Изход след предоставено разрешение.

Копирайте само файлове от определена директория

За извличане на всички файлове и директории от определен път, ще използваме цикъл for в скрипта, след което ще филтрираме единствения файл, използвайки условието if. В примера по-долу изпълняваме командата cp, изпълнена само ако итераторът е файл, който е определен -f флаг.

#!/ bin / bash
dpath = / var / log / nginx / *
за ФАЙЛ в $ dpath
направете
ако [[-f $ FILE]]
тогава
cp $ FILE / начало / $ ПОТРЕБИТЕЛ /
друго
echo „В дадения път няма файлове.”
fi
Свършен

Копирайте всички файлове с конкретни разширения

В този пример ще копираме всички файлове с .регистрационно разширение. Трябва да добавим *.влезте в пътя, така че да повторите единствения файл с .регистрационно разширение само за цикъл.

#!/ bin / bash
за ФАЙЛ в / var / log / nginx / *.дневник
направете
cp $ FILE / начало / $ ПОТРЕБИТЕЛ /
Свършен

Копирайте всички файлове, включително директорията

В този пример ще копираме рекурсивно всички файлове, включително директории. За това просто трябва да добавим -R cp команда, където -R определя рекурсивно извличане на директорията.

#!/ bin / bash
за ФАЙЛ в / var / log / *
направете
cp -R $ FILE / начало / $ ПОТРЕБИТЕЛ /
Свършен

Копирайте файлове от посочения от потребителя път

В този пример ще копираме файлове от указания от потребителя реж. За целта ще използваме командата за четене, за да изискаме пътя от потребителя, след което ще проверим дали потребителят предоставя пътя до директорията или не, което се прави от флага -d в условието. След като проверим dir, ще използваме цикъл for, за да повторим всички файлове и dir вътре в дадения път, след което отново да филтрираме единствените файлове, използвайки условието if. Ако условието съвпада, ще се изпълни следната cp команда.

#!/ bin / bash
echo „Моля, предоставете път до реж.”
път за четене
ако [[-d $ път]]
тогава
за ФАЙЛ в $ path / *
направете
ако [[-f $ FILE]]
тогава
cp $ FILE / начало / $ ПОТРЕБИТЕЛ /
друго
echo „В дадения път няма файлове.”
fi
Свършен
друго
ехо „Пътят до директорията е необходим“
fi

В домашния ми каталог имам следните файлове и реж.

Изход при предоставяне на пътя към файл.

Изход при предоставяне на пътека за местоположение на дир.

След като изпълним файла на скрипта, можем да проверим изхода в предварително дефинираната директория в скрипта. В моя случай съм копирал файла в домашния си каталог и резултатът е следният.

Заключение

В тази статия научаваме как да копираме файлове с помощта на bash скриптове. Можем да използваме много други операции като цикъл, if-else и т.н. Bash скриптове са по-ефективни при работа с множество команди за изпълнение на конкретни задачи. Надявам се тази статия да ви хареса за копиране на файлове с помощта на bash скрипт.

Урок Сянка на Tomb Raider за Linux
Shadow of the Tomb Raider е дванадесетото допълнение към поредицата Tomb Raider - франчайз за екшън-приключенска игра, създаден от Eidos Montreal. Игр...
Как да увеличите FPS в Linux?
FPS означава Кадри в секунда. Задачата на FPS е да измерва честотата на кадрите при възпроизвеждане на видео или игрални изпълнения. С прости думи бро...
Топ Oculus App Lab Games
Ако сте собственик на слушалки на Oculus, тогава трябва да знаете за странично зареждане. Sideloading е процесът на инсталиране на несъхранявано съдър...