• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

verschieben aller Dateien größer 10 MB (solved)

radi5

Newbie
Hallo Forum,

auf die Gefahr in Euch zu langweilen, wie kann ich alle Dateien eines Verzeichnisses die größer als 10 MB sind in ein anderes Verzeichnis verschieben.

Es ist wohl nicht nötig zu erwähnen dass ich mich gerade erst in die Welt der Pinguine vortaste.

Viele grüße

radi
 

init 0

Newbie
Tipp mal den Befehl
Code:
man cp
in die Konsole ein und Du bekommst die Hilfeseiten zum cp-Befehl (copy) präsentiert. Da stehen auch alle Optionen von "cp" erklärt. Bin mir nämlich selber nicht so sicher ob "cp" in der Lage ist in Abhängigkeit von der Dateigröße die Dateien auszuwählen.

Wenn cp nicht selbst diese Selektionsmöglichkeit hat, dann könnte man das ganze noch über eine kleine Schleife lösen, die mit "find" alle Dateien raussucht, die Du kopieren willst und sie dann eben mit cp kopiert.
 
A

Anonymous

Gast
hi,
eine kleine anregung :lol:
Code:
find . -type f|while read a;do sizestat=`stat -c%s $a`;if [ $sizestat -ge 10000000 ];then echo $a weil $sizestat;fi;done

Mƒg ®êïñï
 
OP
R

radi5

Newbie
Hi,

den cp Befehl habe im Rahmen meiner Möglichkeiten studiert aber nichts gefunden.

@ reini

Auch wenn ich nicht genau verstehe warum, gibt mir Deine Anregung doch genau das was ich brauche.

Ich werde sobald wie möglich mal versuchen ein mv an geeigneter Stelle einzubauen. Wenns nicht klappt bin ich wieder hier ;-)

Danke für die schnelle Hilfe

radi
 

TeXpert

Guru
reini123 schrieb:
hi,
eine kleine anregung :lol:
Code:
find . -type f|while read a;do sizestat=`stat -c%s $a`;if [ $sizestat -ge 10000000 ];then echo $a weil $sizestat;fi;done

Mƒg ®êïñï

was soll das denn, lies einfach mal man find

-size N[bckw]
die Datei belegt N Datenblöcke zu 512 Bytes, bzw. N Bytes, N 2-Byte-Wörtern und N Kilobytes mit nachgestelltem c, w oder k. Nachgestelltes b entspricht
der Standardvorgabe von 512-Byte-Blöcken.
 
OP
R

radi5

Newbie
Das sieht verständlicher aus... leider ist es nicht richtig.

Code:
find -size  +10M -exec mv {} test/ 
find: Fehlendes Argument für "-exec".

Wo ist der Denkfehler?

Danke für die Hilfe, man sieht zumindest schon mal Fortschritte *lach*

radi
 
A

Anonymous

Gast
TeXpert schrieb:
was soll das denn, lies einfach mal man find
Was soll Dein Post ? warum postest Du nicht gleich die korrekte Syntax :?:
Ich habe bis size gelesen und
Code:
       Numeric arguments can be specified as

       +n     for greater than n,

       -n     for less than n,

       n      for exactly n.
nicht mehr .... auserdem war es als anregung gedacht und nicht als vorgekaute perfekte syntax!

Ich werde mich bemuehen in Zukunft nur perfektioniert Sytax zu posten :wink: oder es ganz lassen :!:
Also damit keiner mehr darueber nachdenken oder sich aufregen braucht
Code:
find . -size +10000k

Mƒg ®êïñï
 
OP
R

radi5

Newbie
Hey Jungs nicht streiten ;-)

hat einer noch nen Tipp bezüglich meines kleinen Folgeproblems?
 
radi5 schrieb:
Das sieht verständlicher aus... leider ist es nicht richtig.

Code:
find -size  +10M -exec mv {} test/ 
find: Fehlendes Argument für "-exec".

Wo ist der Denkfehler?

Danke für die Hilfe, man sieht zumindest schon mal Fortschritte *lach*

radi

find -size +10M -exec mv {} test/ \;
 
OP
R

radi5

Newbie
Super das funktioniert.

Danke jengelh. Wenn mir jetzt noch jemand verraten könnte was die letzten beiden Zeichen
Code:
/;
bewirken wäre meine volle Zufriedenheit wiederhergestellt.

Viele Grüße

radi
 

TeXpert

Guru
radi5 schrieb:
Super das funktioniert.

Danke jengelh. Wenn mir jetzt noch jemand verraten könnte was die letzten beiden Zeichen
Code:
/;
bewirken wäre meine volle Zufriedenheit wiederhergestellt.

Viele Grüße

radi

wie wärs, wenn Du zur Abwechslung mal in die manpage schaust? man find und hier nach exec suchen.
 
OP
R

radi5

Newbie
Hallo TeXpert,

auch wenn es Dir, in Deinen höheren Sphärend befindend, unwahrscheinlich erscheint, ist es für Einsteiger manchmal schwer die manpages richtig zu interpretieren. Sollte es Dich in Deiner Ehre kränken solche läppischen Fragen zu beantworten, dann lass es doch einfach...

Im übrigen, wie Du als aufmerksamer Leser sicher bemerkt hast, hatte ich die nahezu richtige Lösung schon in meinem 3. Post. Und richtig, die kam aus der manpage.

Also bitte verzeihe meine Unzulänglichkeit...

Viele Grüße

radi

P.S. ich ziehe meine letzte Frage zurück und werde am WE wenn die Familie etwas mehr Zeit mir zubilligt, die manpage zu find studieren und gegebenenfalls auswendig lernen.
 

TeXpert

Guru
genauer kann ich Dich auch nicht drauf stoßen, man find -> exec suchen:

-exec Kommando;
führt das Kommando aus; die Aktion ist wahr, wenn das Kommando einen Status von Null liefert; alle auf den Kommandonamen folgenden Argumente bis zu
einem Semikolon ; werden als Kommandozeilenargumente für das Kommando interpretiert; das Semikolon kann nicht weggelassen werden, und es muß durch min-
destens ein Whitespace von der letzen Option getrennt werden; die Konstruktion {} wird durch den Pfadnamen der Datei ersetzt; die Klammern und das
Semikolon müssen in der Kommandozeile für find quotiert werden, damit sie nicht von der Shell bearbeitet werden

da steht es 1:1 drin, das hat nix mehr mit verstehen zu tun

exec *muss* mit ; abgeschlossen werden, da ; in der Shell eine Sonderrolle hat, *muss* das quotiert werden (quotiert ist zugegeben u.u. missverständlich da es um den Schutz geht, aber ein

Code:
find . OPTS -exec foobar {} ";"
funktioniert btw. auch....

also Schützen -> quoten oder escapen
 
Oben