SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
Folgendes nicht gerade abwegiges Problem:
Ich möchte mehrere Versionen einer Software installieren und natürlich nicht diese zigmal kopieren. Ich möchte die Kopien aus symlinks erstellen.
Grundsätzlich kein Problem, wenn es um ganze Verzeichnisse geht aber wenn ich jetzt ein Verzeichnis mit 100 Dateien habe und darin nun eine config liegt, die eine echte Datei sein muss, da diese für die Programmkopie die Einstellungen enthält, muss ich ja 100 symlinks von hand anlegen.
Da ich aber faul bin und Linux für mächtiger halte muss es dafür doch eine andre Lösung geben. Ich stelle mir soetwas wie ein automatisches Erzeugen von Link von einfach allen in den Verzeichnissen befindlichen Dateien vor, also der Parameter -R bei den meisten Programmen.
Nun steht in "man ln" soetwas wie "ist die letzte Angabe eine bestehendes Verzeichnis, werden rekursiv für alle Dateien der Verzeichnisse Links erstellt..." Das hat bei meinen Versuche aber nicht geklappt. Hab ichs falsch verstanden oder nicht die richtige Syntax benutzt?
Hat jemand mehr Kenntnisse über ln ?
Ich möchte mehrere Versionen einer Software installieren und natürlich nicht diese zigmal kopieren. Ich möchte die Kopien aus symlinks erstellen.
Grundsätzlich kein Problem, wenn es um ganze Verzeichnisse geht aber wenn ich jetzt ein Verzeichnis mit 100 Dateien habe und darin nun eine config liegt, die eine echte Datei sein muss, da diese für die Programmkopie die Einstellungen enthält, muss ich ja 100 symlinks von hand anlegen.
Da ich aber faul bin und Linux für mächtiger halte muss es dafür doch eine andre Lösung geben. Ich stelle mir soetwas wie ein automatisches Erzeugen von Link von einfach allen in den Verzeichnissen befindlichen Dateien vor, also der Parameter -R bei den meisten Programmen.
Nun steht in "man ln" soetwas wie "ist die letzte Angabe eine bestehendes Verzeichnis, werden rekursiv für alle Dateien der Verzeichnisse Links erstellt..." Das hat bei meinen Versuche aber nicht geklappt. Hab ichs falsch verstanden oder nicht die richtige Syntax benutzt?
Hat jemand mehr Kenntnisse über ln ?
Last edited by ice on 2003-04-03 16:00, edited 1 time in total.
Re: SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
Linke auf das Verzeichnis, das sollte schon ausreichen.
Re: SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
nicht
Es geht um die Verzeichnisse, die ich nicht komplett linken kann.
Entschuldige Du hast das Problem nicht erkannt, oder ich hab mich blöd ausgedrückt.ICE wrote:wenn ich jetzt ein Verzeichnis mit 100 Dateien habe und darin nun eine config liegt, die eine echte Datei sein muss,
Es geht um die Verzeichnisse, die ich nicht komplett linken kann.
Re: SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
Sorry, dann hatte ich dich in der Tat nicht richtig verstanden. Ist halt nicht immer so einfach...
Jetzt brauchst du nur noch einen Mechanismus, der dir die zu linkenden Dateinamen ausgibt, den du dann über Backticks ` einbaust. Das könnte z.B. ein ls in Verbindung mit den nötigen RegEx' sein, die auf die gewünschten Dateinamen matcht.
Ich habe mal fettgemacht, was du suchst.NAME
ln - make links between files
SYNOPSIS
ln [OPTION]... TARGET [LINK_NAME]
ln [OPTION]... TARGET... DIRECTORY
ln [OPTION]... --target-directory=DIRECTORY TARGET...
DESCRIPTION
Create a link to the specified TARGET with optional
LINK_NAME. If LINK_NAME is omitted, a link with the same
basename as the TARGET is created in the current direcÂ
tory. When using the second form with more than one TARÂ
GET, the last argument must be a directory; create links
in DIRECTORY to each TARGET. Create hard links by
default, symbolic links with --symbolic. When creating
hard links, each TARGET must exist.
Jetzt brauchst du nur noch einen Mechanismus, der dir die zu linkenden Dateinamen ausgibt, den du dann über Backticks ` einbaust. Das könnte z.B. ein ls in Verbindung mit den nötigen RegEx' sein, die auf die gewünschten Dateinamen matcht.
Re: SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
8O Und das jetzt bitte mal für nen Dummen. :?
Re: SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
*LOL*
Beispiel:
Du musst halt ein ls Kommando finden, welches dir genau die gewünschten Dateien ausspuckt. Ich habe ja keine Ahnung, wie das konkret bei dir aussieht...? Du kannst ja das ls Kommando auch "pur" testen, also ohne das ln aussenrum. Und wenn dann alles passt, setzt du es ein.
Beispiel:
Code: Select all
[dominik@sklave dominik]$ cd /tmp
[dominik@sklave /tmp]$ ls /home/www/public/
crypt.html htpasswd.users links.txt urls_linux_buecher.txt
firewall-rules.sh index.html old.html
html info.php secure
[dominik@sklave /tmp]$ mkdir symlinks
[dominik@sklave /tmp]$ ln -s `ls /home/www/public/*.html` symlinks/
[dominik@sklave /tmp]$ cd symlinks/
[dominik@sklave symlinks]$ ls -l
total 0
lrwxrwxrwx 1 dominik users 27 Apr 3 17:41 crypt.html -> /home/www/public/crypt.html
lrwxrwxrwx 1 dominik users 27 Apr 3 17:41 index.html -> /home/www/public/index.html
lrwxrwxrwx 1 dominik users 25 Apr 3 17:41 old.html -> /home/www/public/old.html
Re: SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
Mann sauber das ists ja schon.
Ich mach einfach *.* draus. Es sind nur 2-3 Feilen, die echt sein müssen.
Ich danke Dir.
Ich mach einfach *.* draus. Es sind nur 2-3 Feilen, die echt sein müssen.
Ich danke Dir.
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
Ein Sternchen sollte genügen ... wir sind hier ja nicht bei Betriebssystemen aus Redmont ...Ich mach einfach *.*
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Re: SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
:oops: Schande auf mein Haupt. Ich reiss mich jetzt mal zusammen.
hüfp -> debian Installer
hüfp -> debian Installer
Re: SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
das Problem hatte ich gestern auch bei der Installation von mysql 4.0.12 ;)
Das hab ich mir ausgedacht:
Aber das ist noch genialer, hätte die man-page mir auch verraten können:
Sieht zwar umständlicher aus, als das da oben, aber evtl. bekommt ja der ein oder andere eine Eingebung dadurch 8)
Das hab ich mir ausgedacht:
Code: Select all
# cd /usr/local/bin
# for i in /usr/local/mysql/bin/* ; do ln -s "$i" $(basename "$i" ) ; doneCode: Select all
# cd /usr/local/bin
# for i in /usr/local/mysql/bin/* ; do ln -s "$i" ; done-
Anonymous
Re: SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
Wäre ein lndir nicht viel einfacher?
LNDIR(1) LNDIR(1)
NAME
lndir − create a shadow directory of symbolic links to another direc‐
tory tree
....
If you add files, simply run lndir again. New files will be silently
added. Old files will be checked that they have the correct link.
....
If a file in fromdir is a symbolic link, lndir will make the same link
in todir rather than making a link back to the (symbolic link) entry in
fromdir. The −ignorelinks flag changes this behavior.
Re: SymLinks automatisch erzeugen: ln -s /verz/* /verz/* ??
JO DA IST DER BEFEHL!
Danke, ich hab gehofft jemand äußert sich dazu. Den lndir hab ich mal bei einem Bekannten gesehen, mich aber nicht mehr an den Namen erinnert :roll:
Danke, ich hab gehofft jemand äußert sich dazu. Den lndir hab ich mal bei einem Bekannten gesehen, mich aber nicht mehr an den Namen erinnert :roll: