ubuntuusers.de

mv

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |
Dieses Thema ist die Diskussion des Artikels mv.

Bernd

Avatar von Bernd

Anmeldungsdatum:
22. Mai 2005

Beiträge: 1207

Wohnort: Erfurt

Im Artikel zu "mv" wird leider nicht erwähnt, dass der normale Befehl "mv src/* dst/" versteckte Dateien (also alles mit .filename) ignoriert. Auf http://simonstamm.de/alle-dateien-inklusive-versteckte-hidden-files-verschieben/ gibt es einen variierten Befehl

1
mv src/{,.}* dest/

bzw. die Abwandlung

1
mv src/{,.[!.],..?}* dest/

ohne Fehlermeldungen. Ich denke, es wäre sinnvoll, dies im Wiki-Artikel mit einfließen zu lassen. Oder kennt jemand einen andere/einfachere Methode, versteckte Dateien zu berücksichtigen?

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17583

Wohnort: Berlin

Sieht ja überhaupt mehr wie ein Brückenkopf für einen Artikel aus, oder wie ein Alibiartikel.

Auch der Hinweis:

Um mehrere Dateien in Abhängigkeit vom Dateityp auf einmal umzubenennen, könnte man auf die Idee kommen, es bei Bildern beispielsweise mit

mv *.JPG *.jpg 

zu versuchen. Leider wird das so nichts, stattdessen muss man ein Bash-Skript schreiben:

1
2
3
4
#!/bin/bash
for i in *.JPG
do mv "$i" "${i/.JPG}".jpg
done

ist nicht optimal. Ich würde da eines oder mehrere der rename-Tools benennen.

Ich würde auch vorschlagen die Gemeinsamkeiten und Unterschiede von Umbenennen und Verschieben thematisieren in Bezug auf Dateisystem, Zeitstempel, Schredden.

Was macht denn die Abwandlung?

Den einfachen Befehl würde ich übrigens schon auch erwähnen, denn wenn man auf der ersten Ebene keine versteckte Datei hat, dann genügt dieser, und man bekommt weniger schnell eine Sehnenscheidenentzündung. Für die 2. Ebene braucht man das eh nicht mehr.

Bernd

(Themenstarter)
Avatar von Bernd

Anmeldungsdatum:
22. Mai 2005

Beiträge: 1207

Wohnort: Erfurt

user unknown schrieb:

Was macht denn die Abwandlung?

Sie schließt die Platzhalter-Verzeichnisse . und .. aus, damit beim Verschieben keine Fehlermeldung kommt. Ich finde den Befehl recht kryptisch und hatte gedacht, da gibt es vielleicht eine andere/einfachere Möglichkeit (die man sich auch merken kann), hab aber bisher leider nichts gefunden.

barcc

Avatar von barcc

Anmeldungsdatum:
13. Juli 2007

Beiträge: 696

Wohnort: Dortmund

Da * von der shell und nicht von mv ausgewertet wird, gibt es noch eine andere Möglichkeit:

1
shopt -s dotglob

Damit werden in folgenden Befehlen versteckte Dateien nicht mehr ignoriert. (Gilt natürlich für alle Befehle, nicht nur mv)

Für einen einzelnen Befehl kann man das so machen:

1
(shopt -s dotglob; mv src/* dest/)

Ist zwar nicht kürzer, aber vielleicht etwas weniger kryptisch.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17583

Wohnort: Berlin

Bernd schrieb:

user unknown schrieb:

Was macht denn die Abwandlung?

Sie schließt die Platzhalter-Verzeichnisse . und .. aus, damit beim Verschieben keine Fehlermeldung kommt. Ich finde den Befehl recht kryptisch und hatte gedacht, da gibt es vielleicht eine andere/einfachere Möglichkeit (die man sich auch merken kann), hab aber bisher leider nichts gefunden.

Hm, ich dachte einen Test gemacht zu haben mit der kürzeren Version, ohne dass eine Fehlermeldung gekommen wäre.

Hans9876543210

Anmeldungsdatum:
2. Januar 2011

Beiträge: 3741

Moin,

beim Aufruf der Schleife:

–- Beginn Auszug Wiki:

mv *.JPG *.jpg 

zu versuchen. Leider wird das so nichts, stattdessen muss man ein Bash-Skript schreiben:

1
2
3
4
#!/bin/bash
for i in *.JPG
do mv "$i" "${i/.JPG}".jpg
done

–- Ende Auszug Wiki

kriege ich einen Bad substitution Fehler. Scheinbar klappt die Schleife, wenn man anstelle des \ ein % einsetzt:

1
2
3
4
#!/bin/bash
for i in *.JPG
do mv "$i" "${i%.JPG}".jpg
done

Könnte das jemand bei Gelegenheit plausibilisieren? Dann könnte das Wiki angepasst werden.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17583

Wohnort: Berlin

Hans9876543210 schrieb:

1
do mv "$i" "${i/.JPG}".jpg

–- Ende Auszug Wiki

kriege ich einen Bad substitution Fehler. Scheinbar klappt die Schleife, wenn man anstelle des \ ein % einsetzt:

1
do mv "$i" "${i%.JPG}".jpg> 

Könnte das jemand bei Gelegenheit plausibilisieren? Dann könnte das Wiki angepasst werden.

Kann es sein, dass Du Backslash und Slash verwechselt hast?

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Hans9876543210 schrieb:

Könnte das jemand bei Gelegenheit plausibilisieren? Dann könnte das Wiki angepasst werden.

Habe eben einen Test laufen lassen. Klappt wie erwartet problemlos.

mkdir test && cd test
for file in {0..9}; do touch file$file.JPG; done
ls
#Ausgabe: file0.JPG  file1.JPG  file2.JPG  file3.JPG  file4.JPG  file5.JPG  file6.JPG  file7.JPG  file8.JPG  file9.JPG
for i in *.JPG; do mv "$i" "${i/.JPG}".jpg; done
ls
#Ausgabe: file0.jpg  file1.jpg  file2.jpg  file3.jpg  file4.jpg  file5.jpg  file6.jpg  file7.jpg  file8.jpg  file9.jpg

Hans9876543210

Anmeldungsdatum:
2. Januar 2011

Beiträge: 3741

user_unknown schrieb:

Kann es sein, dass Du Backslash und Slash verwechselt hast?

Im Fließtext war ein Vertipper 😳

Ich hab den Fehler entdeckt. In meinen Skript hatte ich eine andere Bash. Anstelle von

1
#!/bin/bash

hatte ich

1
#!/bin/sh

in der Shebang. /sh hatte ich wohl aus einem anderen Wiki Artikel kopiert 🙄 Offensichtlich verweist sh auf die Dash und nicht auf die Bash. Die Dash muss wohl Probleme mit dem Slash haben. Die Lösung mit dem % anstelle des / funktioniert in beiden Shells. Alles ok mit dem Wiki daher.

BoSSSpy

Avatar von BoSSSpy

Anmeldungsdatum:
4. Februar 2017

Beiträge: Zähle...

Die Beschreibung ist nicht schlecht. Ich finde es fehlen in der Beschreibung zu MV noch die Optionen:

  • --backup

  • -b

  • -i (vor überschreiben nachfragen finde ich sehr wichtig)

  • -n (bestehende Daten nicht Überschreiben ist auch wichtig)

  • -S

  • -T

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17583

Wohnort: Berlin

BoSSSpy schrieb:

Die Beschreibung ist nicht schlecht. Ich finde es fehlen in der Beschreibung zu MV noch die Optionen:

Es ist ein Wiki, d.h. Du darst es selbst ergänzen.

TausB

Avatar von TausB

Anmeldungsdatum:
26. November 2009

Beiträge: 1565

Wohnort: Terra incognita

BoSSSpy schrieb:

Die Beschreibung ist nicht schlecht. Ich finde es fehlen in der Beschreibung zu MV noch die Optionen:

  • --backup

  • -b

  • -i (vor überschreiben nachfragen finde ich sehr wichtig)

  • -n (bestehende Daten nicht Überschreiben ist auch wichtig)

  • -S

  • -T

Willkommen im Forum! Manchmal weht der Wind ein wenig forsch hier bei uns, bitte nicht verzagen! ☺

Aber natürlich hat user_unknown Recht ...

user_unknown schrieb: Es ist ein Wiki, d.h. Du darst es selbst ergänzen.

... da hier niemand die Schreibkraft eines anderen ist und das Wiki eine Gemeinschaftsproduktion ist. Falls Du dabei Hilfe brauchst, frage.

Antworten |