1

Тема: Как удалить определённые картинки ?

На сервере скопилось много мусорных (неиспользуемых) картинок. Они содержат в названии определённые символы - 150x , 300x , x50 . Пока скачиваю каталоги на комп, чищу вручную, потом удаляю каталог с сервера и заменяю новым. Но это занимает кучу времени. Ищу способ упростить работу - например команду CentOS чтобы стереть все такие картинки с сервера или из определённого каталога.

2

Re: Как удалить определённые картинки ?

Можно так (только сперва проверь без -delete)

find . -regextype posix-egrep -regex ".*150.*|.*300.*|.*50.*" -delete

Удалит все файлы, содержащие эти последовательности символов в названии. Если там есть файлы других типов, то можно поправить регулярное выражение.

3

Re: Как удалить определённые картинки ?

Что то не работает (использовал без delete ). Команда никакой информации не вывела.
К тому же мне надо удалить не 300, 150 и 50, а 300x, 150x и x50.

4 (18.02.2015 09:50:45 отредактировано Vascom)

Re: Как удалить определённые картинки ?

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

5

Re: Как удалить определённые картинки ?

Спасибо, вроде как заработало.

find /home -regextype posix-egrep -regex ".*150x.*|.*300x.*|.*x50.*"

Но x50 много лишнего вывело, чего бы мне очень не хотелось бы удалять.

Попробую ка я эту команду, в случае чего уточню директорию.

find /home -regextype posix-egrep -regex ".*150x.*|.*300x.*"

Ещё раз спасибо за помощь.

6

Re: Как удалить определённые картинки ?

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

7

Re: Как удалить определённые картинки ?

Спасибо. Если вам нетрудно, помогите мне пожалуйста конкретизировать регулярное выражение. У всех этих картинок есть общий префикс mark- . Картинки у которых этого префикса нету удалять не надо.

8

Re: Как удалить определённые картинки ?

Так?

".*mark-150x.*|.*mark-300x.*|.*mark-x50.*"

Или, если между mark- и 150x что-то ещё есть, то вот так

".*mark-.*150x.*|.*mark-.*300x.*|.*mark-.*x50.*"

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

9

Re: Как удалить определённые картинки ?

Спасибо за подсказку.  az  Второй вариант - между mark- и 150x кое что есть.

10

Re: Как удалить определённые картинки ?

На будущее: в этом варианте регулярных выражений символ "." заменяет любой другой символ, а "*" означает любое число повторений предыдущего символа.

11

Re: Как удалить определённые картинки ?

Vascom пишет

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

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

12

Re: Как удалить определённые картинки ?

Да я и сам в них не очень разбираюсь, просто надо было иногда.
Начать можно с этого https://ru.wikipedia.org/wiki/Регулярные_выражения

13 (18.02.2015 11:34:21 отредактировано bormant)

Re: Как удалить определённые картинки ?

Без регулярных выражений, только с глобингом это могло выглядеть так:

find . -name 'mark-*150x*' -o -name 'mark-*300x*' -o -name 'mark-*x50*' -delete

14

Re: Как удалить определённые картинки ?

Вот я не знал как это "ИЛИ" делать ab

15

Re: Как удалить определённые картинки ?

Можно нагляднее, -or, синоним -o.