Вопрос Добавьте расширение, jpg, в большое количество файлов


У меня есть папка с большим количеством папок с большим количеством файлов и, возможно, больше папок с большим количеством файлов, где некоторые файлы потеряли свое расширение. Я считаю, что они все jpg, но я могу ошибаться. Любые идеи о том, как повторно добавить расширения ко всем этим файлам, не делая этого один за другим?

Я могу сделать это на Windows 7 или Ubuntu 8.10.


4
2017-08-26 18:43


происхождения


Вероятно, этот вопрос будет иметь для вас ответ, поскольку он немного похож: superuser.com/questions/16007/... - Gnoupi
Вы проверили, что вы не отключили отображение расширения в этих папках, прежде чем приступать к переименованию? Основной вопрос, который я знаю, но вы никогда не знаете. - ChrisF
ChrisF, да, я сделал. Спасибо. - pupeno


ответы:


Вы можете сделать это через cmd на окнах.

rename * * .jpg


Редактировать:
Чтобы применить к вложенным папкам, вы можете использовать;

для / r% x в (*) переименуем «% x» * .jpg


7
2017-08-26 18:49



Будет ли это работать рекурсивно во всех папках? - pupeno
У командной строки все еще есть свои возможности :) Да, DOS! - Stewbob
Это не будет - вам нужно будет использовать команду «для», как показано здесь: stackoverflow.com/questions/210413/... - Jeffrey
Спасибо Джеффри; Я не встречал «за» раньше! Это довольно изящно. Я добавил это в тело решения. - RJFalconer
+1 для приятного ответа, который не включал установку других операционных систем или кучу других программ. - Joey


Я сделал это так

find . -type f -iregex ".*[^\(\.jpg\)]" -exec mv "{}" "{}.jpg" ";"

3
2017-08-26 18:59



Ницца. FWIW, более простой метод, чем -iregex заключается в использовании отрицательного имя совпадение: найти . -тип f \! -имя '.jpg» (...). Кроме того, я стараюсь использовать абсолютный путь (* / bin / mv


Если использование powershell является опцией, тогда эта почта от SO должно быть именно то, что вы хотите.


2
2017-08-26 18:46





В Linux

ls | while read file ; do mv $file $file.jpg; done

В Windows

Мне нравится использовать Rename4u которая является бесплатной утилитой.


1
2017-08-26 18:49



Просто надо быть осторожным, чтобы не расширять расширение .jpg до IMAGE001.jpg - Jeffrey
Разве версия Linux не добавит расширение ко всем файлам? Не все файлы не имеют расширения. - pupeno
@J Pablo, .jpg.jpg все еще открывается как jpg;) В окнах я бы сделал: ren * * .jpg, но вы могли бы взломать что-то вместе с командным файлом, чтобы делать это только в том случае, если что-то не имеет расширения - Я слишком ленив. Если он работает, он работает, правильно? - Phoshi


Расширитель Renamer делает работу.


0
2017-08-26 18:46





Для Linux (или MSWindows w / CygWin)

Если вы хотите только добавить суффикс к файлам, которые на самом деле являются JPEG-файлами, попробуйте следующее:

$ find . -type f  ! -name '*.jpg'  -print | while read f
> do case "$(file "$f")" in
>    *JPEG*) mv -iv "$f" "$f.jpg" ;;
>    esac
> done

Который будет:

  1. Пути печати, которые являются файлами без * .jpg суффикс (найти),
  2. Проверьте содержимое этих файлов (файл $ f),
  3. Для файлов JPEG переименуйте их с помощью _.jpg суффикс.

0
2017-09-28 18:27