📜 Скрипты Bash: Как заархивировать все файлы в каталоге

Архивируем файлы в каталоге

by itisgood

В мире Linux и Unix-подобных систем сценарии bash являются мощным инструментом для автоматизации повторяющихся задач, таких как сжатие файлов.

Сжатие файлов с помощью bash-скрипта может значительно упростить ваш рабочий процесс, особенно если речь идет о рутинном резервном копировании, передаче файлов или пакетной обработке.

В этой статье мы расскажем вам о создании простых, но эффективных bash-скриптов для застегивания файлов и каталогов, используя аргументы, чтобы сделать ваш скрипт более универсальным и адаптируемым к различным ситуациям.

🌐 Шпаргалка по скриптам Bash

Начало работы с Bash-скриптами для сжатия файлов

Прежде чем приступить к рассмотрению примеров, важно понять, что скрипты bash могут автоматизировать задачи, которые обычно выполняются в интерфейсе командной строки.

Для сжатия файлов мы используем команду zip, которая должна быть предустановлена в большинстве дистрибутивов Linux.

Если ее нет, вы можете установить ее с помощью менеджера пакетов вашей системы (например, sudo apt install zip для систем на базе Debian).

Базовый скрипта для архивации всех файлов в каталоге: Этот пример демонстрирует простой скрипт для архивации всех файлов в указанной директории.

Скрипт задает целевой каталог и имя выходного zip-файла.

Затем он использует команду zip для сжатия всей директории.

#!/bin/bash

# Directory to be zipped
DIRECTORY='/path/to/directory'

# Output zip file name
ZIPFILE='output.zip'

# Zipping all files in the directory
zip -r $ZIPFILE $DIRECTORY
Замените /path/to/directory на фактический путь к директории, которую вы хотите сжать.
Запустите скрипт, сохранив его под именем zip_script.sh, сделав его исполняемым с помощью chmod +x zip_script.sh, а затем выполнив ./zip_script.sh.
Скрипт, принимающий путь к каталогу в качестве аргумента: Этот улучшенный скрипт принимает путь к каталогу в качестве аргумента, что делает его более гибким.
Вы можете застегивать различные каталоги, не изменяя скрипт каждый раз.
Он проверяет, указан ли путь к каталогу; если нет, то выводит сообщение об использовании.
#!/bin/bash

# Checking if a directory path is provided
if [ "$#" -ne 1 ]; then
    echo "Usage: $0 [directory path]"
    exit 1
fi

DIRECTORY=$1
ZIPFILE='output.zip'

# Zipping the specified directory
zip -r $ZIPFILE $DIRECTORY
            
Запустите этот скрипт, передав в качестве аргумента путь к каталогу, например ./zip_script.sh /path/to/directory.

Выборочное сжатие файлов

Этот расширенный пример показывает, как выборочно сжимать файлы на основе определенных критериев, например типа файла.
Этот скрипт сжимает все файлы .txt в указанном каталоге.
#!/bin/bash

# Checking if a directory path is provided
if [ "$#" -ne 1 ]; then
    echo "Usage: $0 [directory path]"
    exit 1
fi

DIRECTORY=$1
ZIPFILE='text_files.zip'

# Zipping all .txt files in the specified directory
find $DIRECTORY -type f -name "*.txt" | zip $ZIPFILE -@
            
Этот скрипт можно модифицировать, чтобы архивировать файлы на основе различных критериев, таких как размер файла или дата модификации.

Заключение

Из этих примеров вы узнали, как создавать эффективные bash-скрипты для сжатия файлов в Linux.

Начав с базового скрипта для сжатия всего каталога, мы перешли к скриптам, которые могут принимать пути к каталогам в качестве аргументов, что обеспечивает большую гибкость.

Наконец, мы изучили выборочное сжатие файлов, позволяющее выполнять более конкретные и целенаправленные операции по застегиванию.

Создание скриптов Bash является универсальным навыком в администрировании Linux и может сэкономить значительное время и усилия при работе с файлами и каталогами.

Помните, что эти скрипты- лишь отправная точка.

Вы можете расширять и модифицировать их в соответствии с вашими конкретными потребностями, будь то автоматизация резервного копирования, управление файловыми архивами или обработка данных.

см. также:

You may also like

Leave a Comment