Sida 1 av 1

Ta bort EXIF-info rekursivt mha exiv2

Postat: 16 nov 2011, 10:59
av Quakeile
Jag skulle vilja ta bort all exif-info från alla bilder (.jpg) i en viss mapp och alla dess underkataloger.
Men jag går vilse bland alla växlar och så.

1. Vad ska jag köra för kommando?
2. Hur cronar jag upp det?

Tacksam för hjälp! :kram:

Re: Ta bort EXIF-info rekursivt mha exiv2

Postat: 16 nov 2011, 14:39
av ubot
Det här är ju ett sätt att lista filerna en i taget i katalogen inkl. underkataloger /path/to/images/:

Kod: Markera allt

for image in /path/to/images/*.jpg; do if [[ -f $image ]]; then jhead -purejpg $image; fi; done
Jag tror att det här fungerar också:

Kod: Markera allt

path='/path/to/images/subdir1 /path/to/images/subdir2/ /path/to/images/subdir3/'; for dir in $path; do jhead -purgejpg $dir*.jpg; done
Du får installera jhead först:

Kod: Markera allt

sudo apt-get install jhead
Dock hade det varit bättre med en lösning där du anger basktalogen och sedan stegar programmet igenom katalog efter katalog och raderar EXIF-informationen automatiskt med t.ex. jhead. Här kan du läsa mer om jehad: http://linux.die.net/man/1/jhead
-purejpg
Delete all JPEG sections that aren't necessary for rendering the image. Strips any metadata that various applications may have left in the image. A combination of the -de -dc and -du options.

Re: Ta bort EXIF-info rekursivt mha exiv2

Postat: 16 nov 2011, 19:35
av Konservburk
ubot skrev:Dock hade det varit bättre med en lösning där du anger basktalogen och sedan stegar programmet igenom katalog efter katalog och raderar EXIF-informationen automatiskt med t.ex. jhead.
Kommandot find är lämpligt att använda i fall som detta.

Re: Ta bort EXIF-info rekursivt mha exiv2

Postat: 17 nov 2011, 08:22
av ubot
Konservburk skrev:
ubot skrev:Dock hade det varit bättre med en lösning där du anger basktalogen och sedan stegar programmet igenom katalog efter katalog och raderar EXIF-informationen automatiskt med t.ex. jhead.
Kommandot find är lämpligt att använda i fall som detta.
Nja. Det här fungerar INTE i.a.f.:

Kod: Markera allt

for i in $(find /path/to/images/ -iname '*.jpg'); do echo "$i"; done
Sökvägar som innehåller mellanslag bryts och det förstör möjligheten att använda $i med jhead. Så hur menar du att man ska använda find i.s.f? Jag har lekt lite med -print0 på slutet i find men inte riktigt fått till något bra.

Re: Ta bort EXIF-info rekursivt mha exiv2

Postat: 17 nov 2011, 09:39
av Konservburk
ubot skrev:Så hur menar du att man ska använda find i.s.f? Jag har lekt lite med -print0 på slutet i find men inte riktigt fått till något bra.
Jag menade att du ska använda find istället för for, dvs find -exec (eller find -print0 | xargs -0):

Kod: Markera allt

find /path/to/images -iregex '.*\.jpe?g' -exec jhead -purejpg {} +

Re: Ta bort EXIF-info rekursivt mha exiv2

Postat: 17 nov 2011, 16:22
av ubot
Aha. find -exec känner jag inte till.