find /home/bitrix/ext_www/shop.wildorchid.ru/{upload/resize_cache,upload/iblock/,local}/ -type f -regex ".*\(jpg\|jpeg\|JPG\|JPEG\)" -exec jpegoptim --preserve --preserve-perms --max=85 {} \;
home/bitrix/ext_www/shop.wildorchid.ru/{upload/resize_cache,upload/iblock/,local}/
поиск по конкретным директориям рекурсивно.-type f
- только файлы-regex ".*\(jpg\|jpeg\|JPG\|JPEG\)
" - ну думаю тут и так понятно (более расширенный синтаксис)jpegoptim --preserve --preserve-perms --max=85 {} \;
Собственно массив файлов передается в exec тот в свою очередь запускет jpegoptim с параметрами, где {} собственно сам массив файлов.find /home/bitrix/ext_www/shop.wildorchid.ru/{upload/resize_cache,upload/iblock/,local}/
mkdir /tmp/backup
find /home/bitrix/ext_www/shop.ru/ -mtime -30 -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)" -print0 | xargs -0 cp --parents --target-directory /tmp/backup
find
- рекурсивный поиск/home/bitrix/ext_www/shop.ru/
- откуда искать-mtime -30
- те что созданы за последние 30 дней значения могу принимать и плюсовые значении.-regexp
не обязательно просто показал если нужны только определенные фацлы-print 0
тебе не особо нужно, но если у тебя там не просто файлы а структура каталогов со вложениями то через принт мы передаем в xargs короче нормально создадутся все каталогиxargx
- долго ольяснять|
- передать в cp --parents --target-directory
копирует создавая дирекорию/tmp/backup
директория собственно.find . -type f -name '[0-9][0-9]\.txt' -exec bash -c 'mv $0 0${0#./}' {} \;
find . -type f -name '[0-9]\.txt' -exec bash -c 'mv $0 00${0#./}' {} \;
[bitrix@centos-4gb-hel1-1 test]$ ls
10.txt 1.txt 2.txt 333.txt
[bitrix@centos-4gb-hel1-1 test]$ ls
001.txt 002.txt 010.txt 333.txt
find
-поиск рекурсивный.
где -type f
- только файлы-name
- имя файла в данном сулчае ругулярка -exec
выполнить с найденм, опция самого find -bash -
bash ( поскольку нам нужно удалить ./ из имени файла а сам find это может сделать но нам нужно и оставить предидущий вариант для mv а тут уже все ){}
подставить в exec вывод find\;
экранируем и закрываем findкоманда | less -R
ls -la | vim -
which sh
/bin/sh
1 * * * * /bin/sh /home/user/script.sh
find /tmp -type f -regex ".*\(jpg\|jpeg\|JPG\|JPEG\)" -exec jpegoptim --preserve --preserve-perms --max=85 {} \;
/tmp
find
искать рекурсивно от текущего каталога -type f
- отображать только файлы -regex ".*\(jpg\|jpeg\|JPG\|JPEG\)"
- ну регулярка тут короче-exec
выполнить с найденымjpegoptim --preserve --preserve-perms --max=85
-моя команда{}
- то место где ты подставляешь найденный файл, \;
конец cat 111.txt | grep ^DocumentRoot | egrep -o '/.+[^"]'
/var/www/html
^
- начало строки-o
онли