Absoluten Pfad rekursiv ausgeben

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von vasy, 20.08.2008.

  1. vasy

    vasy Grünschnabel

    Dabei seit:
    31.03.2008
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo

    Ich muss für über 3000 Dateien in verschiedenen Verzeichnissen (jedoch alle im Unterverzeichnis /test_verz) überprüfen.
    Das Ganze will ich mit einer Schleife lösen

    for i n `Pfad_zu_Verzeichnissen` do
    ...
    ...

    Nun mein Problem, mit ls- R zeigt es mir zwar all die gewünschten Dateien rekursiv an, jedoch wird dabei nicht der absoluten Pfad angezeigt, aber diesen benötige ich, da es sonst die Dateien mit "for i in `ls- R`" nicht findet.

    Hat jemand einen Tip wie ich von mir den gesantem Pfad ausgeben lassen kann?
    Habe leider auch in den Man-Pages nichts Brauchbares gefunden :-(
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. yai

    yai yet another idiot

    Dabei seit:
    22.01.2007
    Beiträge:
    166
    Zustimmungen:
    0
    versuchs mal mit
    find . -name "*"
    das gibt den relativen Pfad mit an, mit -exec kannste dann gleich deine Kommandos ausführen und brauchst die Schleife nicht
    oder mit
    find /hier/steht/dein/pfad -name "*"
    gibt den absoluten Pfad aus, aber das wird nicht nötig sein.
    Gruß,
    yai
     
  4. #3 vasy, 20.08.2008
    Zuletzt bearbeitet: 20.08.2008
    vasy

    vasy Grünschnabel

    Dabei seit:
    31.03.2008
    Beiträge:
    5
    Zustimmungen:
    0
    Danke für die Antwort, das hilft mir nun schon weiter.

    Kann man aber nach einem -exec eine if Abfrage machen, welche sich auf die einzelnen Dateien bezieht.

    z.B
    if "mit find gelistete Datei" -ot "Datei xyz"; then
    rm "mit find gelistete Datei"
    fi

    Wie bezeichnet man da die gelistete Datei?

    EDIT:

    Ich habe gerade bemerkt, dass ich diese if-Abfrage auf die Dateien nicht machen kann, weil diese die Berechtigung 640 besitzen.
    Gibt es eine Möglichkeit dies auch ohne x-Berechtigung auszuführen?
     
  5. NoXqs

    NoXqs Routinier

    Dabei seit:
    07.05.2007
    Beiträge:
    420
    Zustimmungen:
    0
    Ort:
    Bremen
    In der if-Abfrage fehlt ein "test" oder ist das ein Tippfehler?

    Aber trotzdem musst du natürlich mindestens Leserecht, also r oder 4 auf einer Datei haben, um Informationen über sie zu bekommen.
     
  6. #5 saeckereier, 20.08.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Wenn du alle Dateien l*ö*s*c*h*e*n willst, die ein gewisses A*l*t*e*r haben, dafür gibt's reichlich Threads die du mit der Suche finden kannst.

    Ansonsten würde ich das so lösen:
    Ein Skript mit den Abfragen schreiben, dass für eine Datei funktioniert, meinetwegen skript.sh und dann
    Code:
    find . -name "......" -exec skript.sh {] \;
    
     
  7. #6 Wolfgang, 20.08.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Ja, man kann es auch kompliziert machen, weil -exec ja das Non-Plus Ultra ist gelle. ;)

    Was habt ihr alle gegen die for Var in do... oder while read.
    Das ist allemal effizienter, wenn mehr als ein befehl ausgeführt werden soll.
    Während die Einen noch das Skript schreiben, sind die Anderen schon fertig.

    Nur ein Beispiel von vielen Möglichkeiten:
    Code:
    find /path -name other option|
    while read f;
     do
     command "$f"
     # beliebig viele command...
    ...
    done
    
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 saeckereier, 20.08.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Dagegen habe ich nichts. Es gibt ja immer mehr als eine Lösung und wenn man nicht so Bash fest ist, dann macht man's zum Beispiel wie ich. Sicherlich rechnet sich das von der Geschwindigkeit her ab einer bestimmten Dateimenge. (Wahrscheinlich recht schnell)
    Aber ich wollte gerne eine funktionierende Lösung posten.
     
  10. #8 Wolfgang, 20.08.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Nimme es nicht persönlich, du hast doch den hier gesehen: ;)

    -exec ist bei einem einfachen Befehl ok (wenn nicht zu viele Argumente erwartet werden).

    Gruß Wolfgang
     
Thema:

Absoluten Pfad rekursiv ausgeben

Die Seite wird geladen...

Absoluten Pfad rekursiv ausgeben - Ähnliche Themen

  1. Hier kommen die absoluten Deppen Fragen

    Hier kommen die absoluten Deppen Fragen: Hi, also erst einmal bitte eine dicke Tüte Verständnis. Danke Ich habe folgende Situation ich kenn mich mit dem Terminal und .conf Dateien und so...
  2. Löschen mit Wildcard wenn Space im Pfad ist?

    Löschen mit Wildcard wenn Space im Pfad ist?: Hallo zusammen weder rm "/var/lib/vmware/Virtual Machines/Virtual Machine/"*.lck -R noch rm "/var/lib/vmware/Virtual...
  3. Suche Dateinpfad in .txt

    Suche Dateinpfad in .txt: Hallo, mein Problem ist folgendes: Ich habe Textdatein in denen zwei für mich relevante Dinge stehen. Zum einen die Zeile: Enabled:...
  4. Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln

    Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln: Ich muß häufiger in 2 bestimmte Verzeichnisse auf 3. oder 4. Ebene wechseln. Um nicht permanent cd /ordnerA/ordnerB/ordnerC... usw eingeben zu...
  5. sed mit basename verknüpfen - oder anders Dateipfade in Dateien mit regex ersetzen?

    sed mit basename verknüpfen - oder anders Dateipfade in Dateien mit regex ersetzen?: Hallo, mein Ziel ist es ein Script zu schreiben, das eine CSS-Datei entgegen nimmt und in dieser Datei Pfade ersetzt. Ich möchte bspw....