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.
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:
->
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:
Jemand nen Tip ?
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
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 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");
Kommentar