Shell-Problem: ls -s? du -h? find -size??

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Kraftwerk
Beiträge: 175
Registriert: 16.11.2003 19:33:37
Wohnort: Meisterschwanden, CH
Kontaktdaten:

Shell-Problem: ls -s? du -h? find -size??

Beitrag von Kraftwerk » 31.03.2005 10:27:00

Ich habe eine Datei, die laut ls -s 2516 Byte gross ist. Nun möchte ich sie mit dem find-Befehl "finden". Das mache ich mit:

find . -iname * -size +2515b

Finde alle Dateien, die Grösser 2515 Byte sind.

Doch er findet nix. Wer kann mir helfen?
Linux- und *BSD-Freaks: http://www.linux-planet.org/

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 31.03.2005 10:33:58

schnellschuß: suchst du im richtigen verz.?

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 31.03.2005 10:36:37

kanns grad nicht testen, aber du brauchst kein "-iname *" wenn du nur aufgrund der größe suchen möchtest... find sucht prinzipiell alles und gibt nur das aus, was auf deine Kriterien passt.. und da du nur nach größe gehst, ist der Name ja schnuppe
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 31.03.2005 10:45:56

savar hat recht - das

Code: Alles auswählen

 iname *
ist ja sowieso für die katz - damit findest du alles - lower und upper case und mit * alle zeichenketten

das sollte funkt.

Code: Alles auswählen

find ./ -size 2516c 
du muss evtl. also das verz. anpassen

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 31.03.2005 10:55:03

ich denke nicht das nötig ist, sondern das er das nicht vor der zahl haben darf.. ich meine gibt es eine Datei mit weniger als 0 byte??
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 31.03.2005 11:05:35

das mit dem + kann er schon haben - das problem ist nur das er dann ALLES findet das größer ist als die angebene anzahl an bytes - viel spass beim rauspicken per hand!

mit -size 5624c findet er GENAU ein file mit der größe von 5624 byte - kein rauspiken notwendig

zu dem ./ - naja kommt drauf an ob er so ca. weis wo das file sein könnte - nat. kann er dann einschränkungen treffen indem er genauer angibt wo das duslige file ist - ansonsten ./ und fertig

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 31.03.2005 11:07:44

was ist der Unterschied zwischen "." und "./" ??
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 31.03.2005 11:33:24

Savar hat geschrieben:was ist der Unterschied zwischen "." und "./" ??
der AFAIK :lol:
bewirken tun sie das selbe bez. das aktuelle arbeitsverz.
scheint sich um eine alias geschichte zu handeln - ist aber gar nicht einmal uninteressant ...
die frage muss also laute wie expandiert die shell die beiden fälle

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 03.04.2005 19:33:59

Savar hat geschrieben:was ist der Unterschied zwischen "." und "./" ??
nun definitiv - es gibt keinen unterschied bez. das arbeitsverzeichnis - und da unter unix/linux verzeichnisse durch einen / (=slash) getrennt werden bez. auch das aktuelle arbeitsverzeichnis

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22359
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 03.04.2005 20:04:16

Code: Alles auswählen

b Blocks a 512 Bytes 

c Bytes 

k Kilobytes (1024 bytes)

w 2 bytes words

Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 03.04.2005 20:08:58

KBDCALLS hat geschrieben:

Code: Alles auswählen

b Blocks a 512 Bytes 

c Bytes 

k Kilobytes (1024 bytes)

w 2 bytes words

?? gibt es dazu auch eine erklärung oder muss ich die kristallkugel holen :wink:

Benutzeravatar
mauser
Beiträge: 1854
Registriert: 27.01.2005 22:34:48

Beitrag von mauser » 03.04.2005 21:31:22

er meint folgendes:


man ls -s:
<schnipp>
-s, --size
Ausgabe der Größe jeder Datei in Blöcken.
<schnapp>

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.

[vermutlich bezogen auf den ersten post]

Benutzeravatar
Warlord
Beiträge: 128
Registriert: 10.03.2005 12:18:18
Wohnort: Norddeutschland

Beitrag von Warlord » 05.04.2005 12:33:56

Wenn man Wildcards wie den Stern benutzt, muß man das Argument für -iname in Anführungszeichen setzen, da sonst die Shell den * ersetzt mit den Einträgen des Verzeichnisses.

Also:

Code: Alles auswählen

find . -iname "bla*"
findet alles, was mit bla anfängt... und Bla und BLA und... :)

Man kann den Stern auch durch Voranstellen eines Backslash aus der Shell-Ersetzung rausnehmen:

Code: Alles auswählen

find /usr -name \*dies\*

Antworten