Dodaj rozszerzenie jpg do wielu plików

4

Mam folder z dużą ilością folderów z dużą ilością plików i może więcej folderów z większą liczbą plików, w których niektóre pliki straciły swoje rozszerzenie. Uważam, że wszystkie są plikami JPG, ale mogę się mylić. Jakieś pomysły, jak ponownie dodać rozszerzenia do wszystkich tych plików bez robienia tego jeden po drugim?

Mogę to zrobić w systemie Windows 7 lub Ubuntu 8.10.

pupeno
źródło
To pytanie prawdopodobnie będzie dla ciebie odpowiedzią, ponieważ jest trochę podobne: superuser.com/questions/16007/…
Gnoupi
1
Czy sprawdziłeś, czy nie wyłączyłeś wyświetlania rozszerzenia w tych folderach przed rozpoczęciem zmiany nazwy? Podstawowe pytanie, wiem, ale nigdy nie wiadomo.
ChrisF,

Odpowiedzi:

7

Możesz to zrobić za pomocą cmd w systemie Windows.

zmień nazwę * * .jpg


Edycja:
Aby zastosować do zagnieżdżonych folderów, możesz użyć;

dla / r% x in (*) zmień nazwę „% x” * .jpg

RJFalconer
źródło
1
Czy zadziała to rekurencyjnie we wszystkich folderach?
pupeno
Wiersz polecenia wciąż ma swoje zastosowania :) Tak, DOS!
Stewbob
Nie będzie - musisz użyć polecenia „za”, jak pokazano tutaj: stackoverflow.com/questions/210413/…
Jeffrey,
1
Dzięki Jeffrey; Nie spotkałem się wcześniej z „za”! To całkiem fajne. Dodałem to do treści rozwiązania.
RJFalconer,
2
+1 za miłą odpowiedź, która nie wymagała instalacji innych systemów operacyjnych ani sterty innych programów.
Joey,
3

Zrobiłem to w ten sposób

find . -type f -iregex ".*[^\(\.jpg\)]" -exec mv "{}" "{}.jpg" ";"
pupeno
źródło
1
Miły. FWIW, prostszą metodą niż -iregex jest użycie negatywu dopasowania nazwy : znajdź. -typ f \! -nazwa „ .jpg” (...). Ponadto staram się zawsze używać ścieżki bezwzględnej (* / bin / mv ) podczas korzystania z find / -exec.
NVRAM,
2

Jeśli korzystanie z programu PowerShell jest opcją, to post z SO powinien być dokładnie taki, jak chcesz.

Jeffrey
źródło
1

W systemie Linux

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

W systemie Windows

Lubię używać Rename4u, który jest darmowym narzędziem.

djhowell
źródło
Trzeba tylko uważać, aby nie dołączyć rozszerzenia .jpg do IMAGE001.jpg
Jeffrey,
Czy wersja Linuksa nie dodałaby rozszerzenia do wszystkich plików? Nie wszystkie pliki nie mają rozszerzenia.
pupeno
@J Pablo, .jpg.jpg nadal otwiera się jako jpg;) W systemie Windows zrobiłbym: ren * * .jpg, ale możesz zhakować coś razem z plikiem wsadowym, aby zrobić to tylko, jeśli coś nie ma rozszerzenia - Sam jestem zbyt leniwy. Jeśli to działa, to działa, prawda?
Phoshi
0

Dla systemu Linux (lub MSWindows w / CygWin)

Jeśli chcesz dodać tylko przyrostek do plików, które w rzeczywistości są plikami JPEG, spróbuj tego:

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

Które będą:

  1. Drukuj ścieżki, które są plikami bez sufiksu * .jpg ( znajdź ),
  2. Sprawdź zawartość tych plików ( plik $ f ),
  3. W przypadku plików JPEG zmień ich nazwę za pomocą przyrostka _ .jpg .
NVRAM
źródło