У меня есть исходное изображение, img.jpg.
Как я могу удалить дублирующиеся изображения, которые являются img.jpg1, img.jpg2, img.jpg3. Я хочу сохранить изображение, которые имеют .jpg расширение.
Спасибо
Объединитесь find
команда с -regex
и -exec
флаги. В этом конкретном примере, -exec
просто берет все изображения простофили и перемещает их в корзину, таким образом, все еще можно восстановить любого из них, если Вы выбираете так. Можно позже использовать rm
команда или чистый мусор через GUI
testerdir:$ ls
img.jpg img.jpg1 img.jpg2 img.jpg3
testerdir:$ find . -regex ".*\.jpg[1-9]+" -print -exec mv -t $HOME/.local/share/Trash/ {} +
./img.jpg1
./img.jpg3
./img.jpg2
testerdir:$ ls $HOME/.local/share/Trash
expunged/ files/ img.jpg1 img.jpg2 img.jpg3 info/
testerdir:$ ls
img.jpg
*.jpg
S Move to trash
или просто нажимает , удаляют ключ. Используя bash
, нерекурсивно:
shopt -s extglob nullglob
rm img.jpg+(?)
, Если у Вас только есть цифры в конце:
rm img.jpg+([0-9])
Рекурсивно:
shopt -s globstar extglob nullglob
rm **/img.jpg+(?)
только В случае цифр в конце:
rm **/img.jpg+([0-9])
Здесь мы использовали несколько опций оболочки:
extglob
позволит нам соответствовать расширенным шаблонам шарика, например, +(?)
будет соответствовать одним или нескольким случаям любого символа. Это должно быть включено в интерактивной оболочке по умолчанию.
nullglob
приведет к пустой строке, если никакое соответствие не будет найдено
globstar
, то позволит нам искать рекурсивно использование **