Ankündigung

Einklappen
Keine Ankündigung bisher.

[BASH]Verzeichnis-Struktur in form von Symlinks für Dateien kopieren ?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [BASH]Verzeichnis-Struktur in form von Symlinks für Dateien kopieren ?

    Ich stehe gerade vor einem kleinen problem, ich habe einen ordner der innerhalb einer pfad-struktur woanders liegen muss dass er vom passenden vcs (git submodule) erfasst wird, jetzt brauch ich den ordner noch an einer weiteren Stelle in form einer "dynamischen, erweiterbaren" kopie, sprich nicht einfach nur 1 symlink, sondern alle ordner müssen real existieren, aber alle dateien darin sollten nur symlinks sein.
    So dass ich dort symlinks löschen kann und stattdessen echte dateien platzieren kann die ich modifzieren kann um ein system anzupassen.


    Dazu muss ich auch die möglichkeit haben einfach in der shell, wenn im basis-ordner im vcs neue dateien hinzukommen, mit einem einfachen befehl in der shell (notfalls über ein bash/php-script) neu dazugekommen dateien auch zu versymlinken.

    VCS = Version Control System

    ln direkt scheint keine option zu bieten die einem sowas ermöglicht und bei google habe ich heute irgendwie noch garkein glück gehabt irgendwas zu finden was ich suche.

    Jemand sowas schonmal gemacht und vielleicht ein paar shell-schnipsel dazu in seiner history ?

    Bisher hab ich das kopieren von NUR der Ordner-Struktur in dieser form:

    z.b.
    Code:
    (cd ../../../path; find -type d ! -name .) | xargs mkdir
    das erzeugt mir eine kopie der ordner-struktur

    Nur beim rest fehlt mir gerade noch der zündende funke um das ganze zusammenzuwußeln.

    Dateien finde ich so:

    Code:
    find  ../../../path -type f
    ->
    Code:
    ../../../path/foo.txt
    ../../../path/baa.txt
    was ich mit xargs wohl noch irgendwie durch sed jagen muss [hier mangelt es gerade bei mir] und dann via xargs an ln -s weitergeben.

    was ich jetzt noch bräuchte wäre imho wo der symlink liegen soll, aber das schaff ich irgendwie nicht mit sed, gedanklich dürfte das in php so aussehen:

    PHP-Code:
    inputpath '../../../path';
    $filepath '../../../path/baa.txt';


    $symlink_path str_replace($inputpath '/'''$filepath);
    exec("ln -s $filepath $symlink_path"); 
    Jemand nen Tip ?
    [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
    | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

  • #2
    Geht da nicht was mit rsync? Die ct-Backuplösung tut fast genau das was DU willst. Ist jetzt ein vbScript, aber das könntest Du sicher nachbauen. Für einen Ordner geht vielleicht auch nur rsync. Imho kann man dort auch allerlei konfigurieren. Arbeite leider nicht viel damit, deshlab kann ich Dir nichts konkreteres sagen.

    [edit]

    Link vergessen: http://www.heise.de/ct/ftp/06/09/126/
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Zitat von robo47 Beitrag anzeigen
      alle ordner müssen real existieren, aber alle dateien darin sollten nur symlinks sein.
      lndir
      Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

      Kommentar


      • #4
        Zitat von mimomamu Beitrag anzeigen
        Wow, super, genau was ich brauche
        Gleich mal das passende paket installiert

        Danke
        [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
        | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

        Kommentar


        • #5
          Ansonsten wäre find -type f in Verbindung mit ln -s und grep auch eine Variante.
          Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

          Kommentar

          Lädt...
          X