{"id":17777,"date":"2025-01-11T23:44:23","date_gmt":"2025-01-11T22:44:23","guid":{"rendered":"https:\/\/linux-bibel.at\/?p=17777"},"modified":"2025-01-11T23:44:25","modified_gmt":"2025-01-11T22:44:25","slug":"umbenennen-von-mehreren-dateien-mit-mmv-unter-linux-auf-dem-terminal","status":"publish","type":"post","link":"https:\/\/linux-bibel.at\/index.php\/2025\/01\/11\/umbenennen-von-mehreren-dateien-mit-mmv-unter-linux-auf-dem-terminal\/","title":{"rendered":"Umbenennen von mehreren Dateien mit mmv unter Linux auf dem Terminal"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Unter Linux k\u00f6nnen Sie mit dem Befehl <code>mv<\/code> nur eine Datei oder ein Verzeichnis umbenennen &#8211; beispielsweise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mv Dateiname.txt Dateiname_2.txt\nmv Verzeichnis\/ Neues_Verzeichnis<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dies k\u00f6nnten Sie nat\u00fcrlich mit einem l\u00e4ngeren Befehl mit <code>for<\/code> aufgebaut umgehen, ist aber f\u00fcr nicht-Terminal-Freunde dann wahrscheinlich doch etwas umst\u00e4ndlich. Der Befehl mmv ist genau f\u00fcr solche Dinge geschaffen &#8211; massenhaft Dateien umbenennen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">mmv (<em>Multiple move<\/em>) installieren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Unter auf Debian basierenden Linux-Distributionen installieren Sie mmv ganz einfach \u00fcber die Paket-Verwaltung, am schnellsten nat\u00fcrlich als root auf dem Terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update\napt install mmv<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">mmv nutzen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die grundlegende Syntax lautet:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mmv Optionen Quell-Muster Ziel-Muster<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nehmen wir einmal an, ich habe in einem Verzeichnis Bilder, die von einer Kamera, einem Handy aufgenommen wurden, alle haben die typische Bezeichnung &#8222;<strong>xxxxxxxxxxxxxx.jpeg<\/strong>&#8222;, &#8222;<strong>xxx<\/strong>&#8220; wird nat\u00fcrlich durch die beliebige Bezeichnung ersetzt und ist komplett egal. Ich will, dass jedes Bild der Reihe nach mit &#8222;<strong>1.jpeg<\/strong>&#8222;, &#8222;<strong>2.jpeg<\/strong>&#8220; und so weiter und so fort umbenannt wird:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mmv \"*.jpeg\" \"#1.jpeg\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mit <code>*.jpeg<\/code> zeige ich der Software, ich will jedes Bild mit der Dateiendung <strong>.jpeg<\/strong> umbenennen, egal was davor als Bezeichnung steht &#8211; hierf\u00fcr sorgt der Platzhalter <code>*<\/code>. Die Raute <code>#<\/code> sorgt daf\u00fcr, dass mmv die <strong>1<\/strong> als Erstes nimmt und dann ganz einfach numerisch der Reihe nach weiter so fortgeht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt gehen wir etwas weiter und geben ein Muster an &#8211; im Beispiel habe ich in einem Verzeichnis folgende Dateibezeichnungen: <strong>Datei-oklX.txt Datei-gohX.txt<\/strong>. Das gro\u00dfe <strong>X<\/strong> ersetzt im Beispiel eine Zahl, oder was auch immer, dies k\u00f6nnen auch mehrere Zeichen sein &#8211; ich will nur die Dateien umbenennen, die mit <strong>Datei-okl<\/strong> beginnen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mmv \"Datei-okl*.txt\" \"Dokument-#01.txt\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ersetzt wird also nur <strong>Datei-okl<\/strong> durch <strong>Dokument-01<\/strong> &#8211; ein Beispiel: <strong>Datei-okl12.txt<\/strong> durch <strong>Dokument-01.txt<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt m\u00f6chte ich <strong>xxxxx.jpg<\/strong> durch die aktuelle Jahreszahl ersetzen und nat\u00fcrlich eine fortlaufende Nummer hinzuf\u00fcgen &#8211; also etwa <strong>1000000.jpg<\/strong> durch <strong>2025_01.jpg<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mmv \"*.jpg\" \"2025_#01.jpg\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dies l\u00e4sst sich nat\u00fcrlich auch rekursiv in Unterverzeichnissen anwenden:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mmv -r \"*.jpg\" \"2025_#01.jpg\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Auch regul\u00e4re Ausdr\u00fccke lassen sich nat\u00fcrlich nutzen, mehr nat\u00fcrlich auf der Manpage mit dem Befehl:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>man mmv<\/code><\/pre>\n<div class=\"pld-like-dislike-wrap pld-custom\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir\" data-post-id=\"17777\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Hoch.png\" alt=\"Gef\u00e4llt mir\" \/>\r\n            <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">6    <\/span>\r\n<\/div><div class=\"pld-dislike-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-dislike-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir nicht\" data-post-id=\"17777\" data-trigger-type=\"dislike\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Runter.png\" alt=\"Gef\u00e4llt mir nicht\" \/>\r\n            <\/a>\r\n    <span class=\"pld-dislike-count-wrap pld-count-wrap\"><\/span>\r\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Unter Linux k\u00f6nnen Sie mit dem Befehl mv nur eine Datei oder ein Verzeichnis umbenennen &#8211; beispielsweise: Dies k\u00f6nnten Sie nat\u00fcrlich mit einem l\u00e4ngeren Befehl mit for aufgebaut umgehen, ist aber f\u00fcr nicht-Terminal-Freunde dann wahrscheinlich doch etwas umst\u00e4ndlich. Der Befehl mmv ist genau f\u00fcr solche Dinge geschaffen &#8211; massenhaft Dateien umbenennen. mmv (Multiple move) installieren [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":61,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[12,7,6],"class_list":["post-17777","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-terminal","tag-kommandozeile","tag-shell","tag-terminal"],"_links":{"self":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/17777","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/comments?post=17777"}],"version-history":[{"count":1,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/17777\/revisions"}],"predecessor-version":[{"id":17778,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/17777\/revisions\/17778"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media\/61"}],"wp:attachment":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media?parent=17777"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/categories?post=17777"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/tags?post=17777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}