PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Im Terminal alle Datein mit Ziffer im Namen in anderes Directory kopieren



flügelnuss
08.01.15, 11:45
Hi Leute,

Ich bin ein blutiger Anfänger was Linux und das Terminal angeht. Ich möchte mittels cp alle Datein welche eine Ziffer am Ende des Namens haben in ein anderes Directory kopieren und weiß dass das mit grep und einem Pipeline Befehl funktionieren muss, allerdings weiß ich nicht wie ich die Namensenden nach Ziffern filtern kann. Ich wüsste wie ich nach bestimmten Ziffern suche aber nicht danach ob überhaupt eine Ziffer vorhanden ist.

Ich hoffe ihr könnt mir helfen :p
Cheers

DrunkenFreak
08.01.15, 12:00
Mit Regexp sollte das auch gehen. In etwa so:


cp $quelle/*[0-9] $ziel

nopes
08.01.15, 14:47
bzw. denke mal hier drüber nach:
touch file1 file2 f1lex f4ll0ut
ls -la *[0-9]*
ls -la *[0-9]

marce
12.01.15, 13:32
"Knackpunkt" dürfte sein, was er denn unter "Ende des Dateinamens" versteht - mit Extension oder ohne, gibt's zwingend eine Extension oder nicht, ...

... und dann ggf. noch, um wie viele Dateien es sich denn handelt, sprich ob man der Bash-Expansion das noch anvertrauen darf.

mytux
12.01.15, 18:09
Moin, Du Nuss,
es braucht für ne wasserdichte Lösung genauere Angaben über den Datenstrom/Input.
Aber wahrscheinlich willst Du nur Deine mp3-Sammlung irgendwie neu sortieren ;-). Performanceprobleme gibts da noch nicht. Aber 1.000.000 bash-Instanzen zu starten,kann flott gehen ;-)
Egal-
Schwieriger ist, was Du mit "am Ende des Dateinamens" meinst.... -ganz wichtig, wie oben schon erwähnt wurde.
Probiere es einfach aus, sichere Die Daten ersma weg und dann gucken, ob das Ergebnis passt, korrigieren, nochmal schaun ;-). Wenn alles gut, das Script scharf stellen.

tfr

GoodCat
12.02.15, 15:51
Hallo,

würde da find empfehlen, so findest du beispielsweise alle Dateien mit einer Zahl im Namen:

find . -type f -iname "*[0-9]*"

.. und so würdest du die Funde nach /tmp kopieren:

find . -type f -iname "*[0-9]*" -exec cp {} /tmp/ \;