Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Dateiendung mit mv umbennen und *

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
dazerglovic



Anmeldungsdatum: 22.10.2004
Beiträge: 1

BeitragVerfasst am: 22. Okt 2004 18:29   Titel: Dateiendung mit mv umbennen und *

warum passiert das?

[something@localhost verz]$ mv *.mgk *.jpg ./
mv: »im000245.mgk« und »./im000245.mgk« sind die gleiche Datei
mv: »im000246.mgk« und »./im000246.mgk« sind die gleiche Datei
usw.

habe nach mogrify befehl aus *.jpg resize'te kleine .mgk gekriegt warum weiß ich nicht aber egal.

Wichtiger wäre wie kann man alle dateiendungen in andere umbenen ohne ein script dazu zu brauchen geht das überhaupt?
 
Benutzer-Profile anzeigen Private Nachricht senden

klopskuchen
prolinux-forum-admin


Anmeldungsdatum: 26.06.2004
Beiträge: 1444

BeitragVerfasst am: 23. Okt 2004 15:06   Titel:

Geht nicht.
Es erfolgt eine Umbenennund in *.blabla .
Ist in diesem Fall also kein Metazeichen
sondern ein ASCII-Zeichen im Dateinamen.

MfG, Klopskuchen
_________________
When all else fails, read the instructions .
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 24. Okt 2004 12:35   Titel:

Statt mv kannst Du für solche Zwecke rename verwenden:
Code:
rename .mgk .jpg *.mgk
Das ersetzt in allen .mgk-dateien den Bestandteil ".mgk" durch ".jpg.

Unter DOS funktionierte das mit dem Sternchen deswegen, weil jedes Kommando dieses Ternchen selbst implementieren musste. Bei cd funktionierte es gar nicht, bei del so wie bei UNIX und bei ren wieder anders (in der Syntax so, wie Du es oben versucht hattest).

Unter UNIX wird das Sternchen durch die Shell ausgewertet, so dass diese Funktionalität allen Kommandos einheitlich zur Verfügung steht. Das bedeutet aber auch, dass solche Extrawürste wie beim ren unter UNIX so nicht funktionieren können.

Jochen
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Allo



Anmeldungsdatum: 16.04.2004
Beiträge: 155

BeitragVerfasst am: 24. Okt 2004 16:52   Titel:

jochen hat folgendes geschrieben::
Statt mv kannst Du für solche Zwecke rename verwenden:
Code:
rename .mgk .jpg *.mgk
Das ersetzt in allen .mgk-dateien den Bestandteil ".mgk" durch ".jpg.

Unter DOS funktionierte das mit dem Sternchen deswegen, weil jedes Kommando dieses Ternchen selbst implementieren musste. Bei cd funktionierte es gar nicht, bei del so wie bei UNIX und bei ren wieder anders (in der Syntax so, wie Du es oben versucht hattest).

Unter UNIX wird das Sternchen durch die Shell ausgewertet, so dass diese Funktionalität allen Kommandos einheitlich zur Verfügung steht. Das bedeutet aber auch, dass solche Extrawürste wie beim ren unter UNIX so nicht funktionieren können.

Jochen

cool.
das kannte ich noch nicht.

ich mache sowas so:

Code:

for i in *.mgk;do mv $i $(echo $i|sed s/mgk/jpg/i);done


allo
_________________
I came, I saw, I deleted all your files.
 
Benutzer-Profile anzeigen Private Nachricht senden

heinrich



Anmeldungsdatum: 22.09.1999
Beiträge: 219
Wohnort: N49.137 E8.544

BeitragVerfasst am: 24. Okt 2004 18:14   Titel:

[quote="Allo"]
jochen hat folgendes geschrieben::
[...]
ich mache sowas so:

Code:

for i in *.mgk;do mv $i $(echo $i | sed s/mgk/jpg/i);done


allo


Das "sed s/mgk/jpg/i" matcht aber nicht nur die Dateiendung, wenn im Dateinamen noch irgendwo anders die Zeichenkette "mgk" gefunden wird.

Wenn du _NUR_ die Dateiendung möchtest, kannst du auch den Befehl "basename" verwenden:
Code:

for DATEI in *.mgk; do mv "${DATEI}" "$(basename ${DATEI} .mgk).jpg"; done

_________________
It just works.
 
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name

Allo



Anmeldungsdatum: 16.04.2004
Beiträge: 155

BeitragVerfasst am: 24. Okt 2004 18:47   Titel:

wenn da kritisch ist, nehme ich einfach
Code:

s/.mgk$/.jpg/


Das reicht dann.


Allo
_________________
I came, I saw, I deleted all your files.
 
Benutzer-Profile anzeigen Private Nachricht senden

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 25. Okt 2004 10:11   Titel:

Allo hat folgendes geschrieben::
wenn da kritisch ist, nehme ich einfach
Code:

s/.mgk$/.jpg/
Allerdings wird dann im Dateinamen überall, wo ein beliebiges Zeichen gefolgt von "mgk" steht, die Zeichenfolge ",jpeg" eingesetzt:

bamgk.mgk -> b.jpg.mgk

Der Punkt steht bei den Regulären Ausdrücken nämlich für "genau ein beliebiges Zeichen (außer Newline)". So gilt dann auch "amgk" als Treffer. Das zweite ".mgk" würde nicht ersetzt werden, da das Substitute-Kommando des sed nach dem ersten Treffer aufhört, wenn nicht der g-Schalter (global) nach dem schliessenden / angehängt wird.

Wenn Du es so weiterhin machen willst, würde ich
Code:
s/\.mgk$/.jpg/
als sed-Kommando empfehlen. Dann trifft nur noch ein ".mgk" am Ende des Dateinamens.

Jochen
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Allo



Anmeldungsdatum: 16.04.2004
Beiträge: 155

BeitragVerfasst am: 25. Okt 2004 21:21   Titel:

stimmt.
den "." muss man maskieren.
aber auch "mgk$" sollte schon sicher sein


Allo
_________________
I came, I saw, I deleted all your files.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy