Unix Programmierung

L_uk_e

Urgestein
Thread Starter
Mitglied seit
08.11.2007
Beiträge
6.945
Hallo Leute!
ich will mich ein wenig an der Shell programmierung probieren!
habe da nen paar fragen!

also ich will ein shellscript schreiben "myScript.sh"
in der ersten Zeile muss ja folgendes stehen:

!#./bin/bash


jetzt möchte ich, dass ich mir von einen übergebenen Verzeichnispfad die Dateien anzeigen lasse, aber dabei möchte ich nicht, dass mir der User, die Gruppe und die Zugriffsrechte angezeigt werden und auch nur dateien die so aufgebaut sind: *.*
also einen punkt im dateinamen haben!

habe mir folgendes gedacht:

mit ls -l lässt man sich ja alle dateien anzeigen...dann habe ich ls -gG gefunden, dadurch werden der user und die Gruppe nicht mehr angezeigt, aber wie mache ich das mit den Zugriffsrechten?

und vor allem wie übergebe ich einen Dateipfad?

benutze Ubuntu ohne KDE oberfläche! aber das ist ja auch egal...

Kann mir da jemand helfen?

MFG
Luke
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Hallo Leute!
ich will mich ein wenig an der Shell programmierung probieren!
habe da nen paar fragen!
Mahlzeit!

also ich will ein shellscript schreiben "myScript.sh"
in der ersten Zeile muss ja folgendes stehen:

!#./bin/bash

Nicht ganz, das muss so aussehen:
Code:
#! /bin/bash

Wobei man Shellscripte eigentlich aus Kompabilitätsgründen immer mit /bin/sh schreibt. (Ist auch eine Shell, ähnlich wie die bash)
Code:
#! /bin/sh


mit ls -l lässt man sich ja alle dateien anzeigen...dann habe ich ls -gG gefunden, dadurch werden der user und die Gruppe nicht mehr angezeigt, aber wie mache ich das mit den Zugriffsrechten?

und vor allem wie übergebe ich einen Dateipfad?

benutze Ubuntu ohne KDE oberfläche! aber das ist ja auch egal...

Kann mir da jemand helfen?

MFG
Luke
Geht bestimmt auch eleganter, aber:

$1 ist der erste Parameter dem du deinem Script übergibst.
Mit einem normalem "ls" lässt du dir einfach alle Dateien anzeigen (einfache Listung).
Mit cut kannst du Sachen "ausschneiden".
Trennzeichen ist hier ein "", also leerzeichen.

Fertiges Script:
Code:
#! /bin/sh
ls $1 | cut -d " " -f 1
exit 0

ungetestet aber sollte gehen..
 
danke für deine Antwort, aber so werden ja nur noch die Dateien gelistet ohne Größenangeben und Änderungsdatum...
zudem sollen die dateien noch Sortiert nach Größe angezeigt werden, aber das geht ja mit ls -S

aber die ausgabe soll so aussehen (symbolisch gesehen)

[Größe] [Letzter Änderungspunkt mit Datum und Uhrzeit] [Dateiname]

zudem sollen nur Dateien angezeigt werden die einen Punkt im dateinamen haben

also so:
blah.txt
test.tar.gz

so in der art und dazu möchte ich keine Ordner angezeigt bekommen, immer nur die Dateien...

bin ganz neu in der Linux welt...

MFG
Luke
 
ls -gGS | grep . | sed -e 's/^d.*//;s/^l.*//;s/^total.*//' | sed -n 's/..........\ \ \ 1\ //p'
 
ok das scheint mir doch ein wenig kompliziert, ich habs bisher so: ls -gGS | grep [*.*]

aber ich weiß nicht wie man das macht dass die berechtigungen und die ID nicht mit angezeigt werden...
 
mit sed
| sed -n 's/..........\ \ \ 1\ //p'

btw bei deiner ausführung werden dir symbolic links und directorys mitausgegeben!
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh