BashMaster
8.23K subscribers
680 photos
14 videos
1 file
703 links
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов.

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
Как копировать файлы и папки с исключениями: продвинутые трюки с cp

Иногда нужно скопировать содержимое папки, но исключить определённые файлы или папки. Классический cp это напрямую не поддерживает, но есть несколько хитростей, которые помогут справиться.

#### Пример 1: Копирование всего кроме определённых файлов
Если нужно скопировать всё, кроме файлов с расширением .log, воспользуйся этой командой:

find source_dir -type f ! -name '*.log' -exec cp --parents {} destination_dir/ \;


- find source_dir – ищет файлы в указанной папке.
- **! -name '*.log'** – исключает файлы с расширением .log.
- --parents – сохраняет оригинальную структуру папок.

#### Пример 2: Исключение целой папки
Чтобы пропустить определённую папку, например exclude_dir, используй:

find source_dir -path 'source_dir/exclude_dir' -prune -o -type f -exec cp --parents {} destination_dir/ \;


#### Пример 3: Использование простого скрипта
Вот пример простого скрипта, который копирует файлы и исключает определённые по шаблону:

#!/bin/bash
for file in $(find /путь/к/источнику -type f); do
if [[ "$file" != *исключение* ]]; then
cp --parents "$file" /путь/к/назначению
fi
done


- Заменяешь /путь/к/источнику на папку, откуда копируешь.
- Вместо *исключение* указываешь шаблон для исключения.
- Указываешь /путь/к/назначению, куда копировать.

Запусти этот скрипт, и он разберётся со всеми исключениями.


#### Пример 4: Копирование файлов больше определённого размера
Чтобы выбрать только файлы больше 100 МБ:

find source_dir -type f -size +100M -exec cp --parents {} destination_dir/ \;


На завтра у меня для тебя кое-что интересное: будем разбираться, как настроить KVM и QEMU для виртуализации. Но пока расскажи, что бы ты хотел автоматизировать или оптимизировать в своей работе? Может, я смогу помочь тебе с советом.
____________________

Дополнительный материал:
🧠 - Не трать время на логи! Вот как найти все медленные запросы за 1 минуту
🧠 - Как ускорить MySQL? Простые советы, чтобы твой сервер летал, как на стероидах
🧠 - Поднимем отказоустойчивое хранилище в Proxmox VE с Ceph

#Linux_Commands @LinuxSkill