Полезные команды Bash

Поиск всех CSS файлов с заменой найденной строки

Находит все css файлы рекурсивно от текущего каталога, заменяя в каждом один цвет на другой

find . -type f -name '*.css' -exec sed -i 's/#3ba4c2/#460D57/g' {} \;

Заменить параметр во всех php.ini от текущего каталога

Найдет все php.ini и заменит в них все значения func_overload=0 на =2

find . -name 'php.ini' -exec sed -i 's/func_overload=0/func_overload=2/g' "{}" \;

Иногда требуется поменять текст в нескольких видах файла рекурсивно. А "-name" для этого не подойдет.

find . -regex ".*\.\(php\|js\|css\)" -exec sed -i 's/\/bitrix\/templates\//\/local\/templates\//g' "{}" \;

Поиск всех изображений и копирование их с сохранением структуры

Найдет все картинки рекурсивно от текущего каталога и скопирует их сохраняя структуру каталогов в папку /tmp/backu

find . -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)" -print0 | xargs -0 cp --parents --target-directory ./tmp/backup

Замена exif во всех изображениях сайта.

find . -type f -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)" -size +1 -exec exiftool -Artist='Завод металлических дверей Медверь' -Copyright='МЕДВЕРЬ' -By-line='medver.ru' -Credit='Klondike-studio.ru' -title='Металлические двери Медверь' -Contact='http://medver.ru' '-xmp-xmprights:marked=1' {} \; 

Удалить расширение файлов после find

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

find . -regex ".*\.txt$" |  sed 's/\.txt//g'

Создаем каталог если он отсутствует

Если каталог есть и мы пытаемся его создать, возвращается код ошибки 2, при данной проверки ошибки не будет.

test ! -d mkdir /mnt/klondike3 && { mkdir -p mkdir /mnt/klondike3 ; }

Архивируем сайт

В текущем каталоге запускаем архивацию, в архив попадут .htaccess, но исключатся все файлы находящиеся в папке./bitrix/backup

time zip -r -0 archive0.zip . -x ./bitrix/backup\* -x archive*.zip

Смена прав на файлы и каталоги

Используя xargs вместо -exec мы ускоряем процесс почти в 100 раз!

ttime find . -type f | xargs chmod 644 &&  find . -type d | xargs chmod 755


Оставить комментарий