Forums Neueste Beiträge
 

Kommando zur Ermittlung des Ziels eines symbolischen Links?

14/01/2011 - 17:03 von Magnus Warker | Report spam
Hallo,

gegeben ist ein Pfad, der ein symbolischer Link auf einen anderen Pfad ist,
z. B.

/usr/local/disk -> /usr/local/disks/disk1

Eine Shell-Variable enthàlt den Link:

DIR=/usr/local/disk

Wie kann man per Befehl aus ${DIR} das Link-Ziel (/usr/local/disks/disk1)
ermitteln?

Zusatzfrage:
Wie ermittelt man daraus noch den letzten Buchstaben (die '1')?

Vielen Dank
Magnus
 

Lesen sie die antworten

#1 Thomas Bächler
14/01/2011 - 17:09 | Warnen spam
Am 14.01.2011 17:03, schrieb Magnus Warker:
Hallo,

gegeben ist ein Pfad, der ein symbolischer Link auf einen anderen Pfad ist,
z. B.

/usr/local/disk -> /usr/local/disks/disk1

Eine Shell-Variable enthàlt den Link:

DIR=/usr/local/disk

Wie kann man per Befehl aus ${DIR} das Link-Ziel (/usr/local/disks/disk1)
ermitteln?



man readlink

Je nach Geschmack 'readink ${DIR}' oder 'readlink -f ${DIR}'

Zusatzfrage:
Wie ermittelt man daraus noch den letzten Buchstaben (die '1')?



REAL_DIR="$(readlink -f "${DIR}")"
BREAL_DIR="$(basename "${REAL_DIR}")"
echo ${BREAL_DIR#disk}

Wenn ${REAL_DIR} nen Slash am Ende hat, dann wàre die zweite Zeile:
BREAL_DIR="$(basename "${REAL_DIR%/}")"

Das geht in bash, keine Ahnung wieviel davon POSIX-kompatibel ist.

Ähnliche fragen