Wie können alle Dateien mit der Endung .TXT in einem Verzeichnis so
umbenannt werden, dass sie die neue Endung .txt erhalten?
mv *.TXT *.txt
rename *.TXT *.txt
rn -x .txt *.TXT
mv -x .txt *.TXT
Keine der angegebenen Vorschläge.
LPI-Lernziel Grundlegende Dateiverwaltung (103.3)
Dies ist eine Fangfrage für MS-DOS-Hacker der alten Schule. In MS-DOS
müssen die einzelnen Kommandos die Expansion von Datei-Suchmustern übernehmen,
das REN-Kommando von DOS »weiß« also, dass es die zwei Suchmuster *.TXT
und *.txt übergeben bekommen hat, und kann das Nötige tun. Die syntaktisch
äquivalenten Antworten 1 und 2 funktionieren unter Linux aber nicht, da hier
die Shell die Suchmuster durch die passenden Dateinamen ersetzt und das
mv-Kommando überhaupt nicht mitbekommt, dass die lange Namensliste aus
einem Suchmuster (oder mehreren) entstanden ist. Und bekanntlich ist es
durchaus erlaubt, mv mit mehr als zwei Namen aufzurufen, nur muss dann
der letzte Name auf der Kommandozeile ein Verzeichnisname sein und alle
vorgenannten Dateien (oder Verzeichnisse) werden in dieses Verzeichnis
verschoben. Was also bei mv *.TXT *.txt passiert, hängt davon ab, welche
Dateien und Unterverzeichnisse im aktuellen Verzeichnis zu finden sind,
und ist mehr oder weniger reine Glückssache. (Bei Antwort 2 kommt
erschwerend dazu, dass Linux standardmäßig kein rename-Kommando enthält,
das sich benimmt wie angegeben; die kanonische Perl-Distribution kommt mit
einem Kommando rename, das aber ganz anders funktioniert.)
mv -x Dateinamens-Erweiterung wäre sicher eine nützliche Syntax, die
mv aber leider nicht unterstützt. Antwort 4 ist also auch nicht richtig.
Zum Schluss ist rn kein Umbenennungsprogramm, sondern der traditionelle,
inzwischen etwas antiquierte USENET-Client von Larry Wall (dem Erfinder der
Programmiersprache Perl), und hier überhaupt nicht nützlich. Die korrekte
Antwort auf diese Frage ist also 5, »Keins von allen«.
Nicht angemeldet