Forwarded from Linux Skill - Освой Linux c нуля до DevOps
Как копировать файлы и папки с исключениями: продвинутые трюки с cp
Иногда нужно скопировать содержимое папки, но исключить определённые файлы или папки. Классический
#### Пример 1: Копирование всего кроме определённых файлов
Если нужно скопировать всё, кроме файлов с расширением
-
- **
-
#### Пример 2: Исключение целой папки
Чтобы пропустить определённую папку, например
#### Пример 3: Использование простого скрипта
Вот пример простого скрипта, который копирует файлы и исключает определённые по шаблону:
- Заменяешь
- Вместо
- Указываешь
Запусти этот скрипт, и он разберётся со всеми исключениями.
#### Пример 4: Копирование файлов больше определённого размера
Чтобы выбрать только файлы больше 100 МБ:
На завтра у меня для тебя кое-что интересное: будем разбираться, как настроить KVM и QEMU для виртуализации. Но пока расскажи, что бы ты хотел автоматизировать или оптимизировать в своей работе? Может, я смогу помочь тебе с советом.
____________________
Дополнительный материал:
🧠 - Не трать время на логи! Вот как найти все медленные запросы за 1 минуту
🧠 - Как ускорить MySQL? Простые советы, чтобы твой сервер летал, как на стероидах
🧠 - Поднимем отказоустойчивое хранилище в Proxmox VE с Ceph
#Linux_Commands @LinuxSkill
Иногда нужно скопировать содержимое папки, но исключить определённые файлы или папки. Классический
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
Telegram
Linux Skill - Бесплатный курс по Linux c нуля до DevOps.
Не трать время на логи! Вот как найти все медленные запросы за 1 минуту! 🚀
Знаешь, что самое скучное в работе с базами? Листать логи в поисках медленных запросов! 😩 Но есть секретное оружие — Mytop. Это как htop, только для MySQL/MariaDB. Позволяет в реальном…
Знаешь, что самое скучное в работе с базами? Листать логи в поисках медленных запросов! 😩 Но есть секретное оружие — Mytop. Это как htop, только для MySQL/MariaDB. Позволяет в реальном…