Gentoo Archives: gentoo-user-el

From: Theo Chatzimichos <tampakrap@g.o>
To: gentoo-user-el@l.g.o
Subject: Re: [gentoo-user-el] check symlink validity
Date: Thu, 16 Feb 2012 22:24:20
Message-Id: 3273475.TDqcD57Ujz@virtuoso
In Reply to: Re: [gentoo-user-el] check symlink validity by "Alex-P. Natsios"
On Thursday 16 of February 2012 23:52:01 Alex-P. Natsios wrote:
> 2012/2/16 Theo Chatzimichos <tampakrap@g.o>: > > Καλησπέρα, > > > > μήπως γνωρίζει κανείς κανένα τρόπο (σε bash,python,perl ή ruby) να ελέγχω > > αν ένα symlink είναι valid? Για καταλόγους μπορώ να τους ακολουθώ και να > > παίρνω το exit code μετά, για αρχεία όμως? > > θοδωρή αυτό που ζητάς και γίνετε.. και δεν γίνετε.. και είναι και > σχετικά περίεργο ανάλογα την πλατφόρμα. > για links και για τις περισσότερες πλατφόρμες (κυρίως unixοειδή ) > υπάρχει το readlink. > > Πρόβλημα: > δεν ακολουθεί δυστυχώς chain links. > θα σου δώσει όμως το αρχείο στο οποιο κάνει point το link > > αν έχουμε ας πούμε το symlink ( testlink -> testfile ) > το File.readlink("testlink") θα σου επιστρέψει testfile. > > > ΥΓ. τα παραπάνω ισχύουν για Ruby και Ruby on Rails.
Thanks. Some dirty solutions by irc brainstorming: Python: if not os.path.islink('/path/to/symlink'): print "not a symlink" else: try: os.stat('/path/to/symlink') except OSError: print "symlink is broken" Bash: SYMLINK="/path/to/symlink" # Check for valid target file [[ -L $SYMLINK ]] && \ cat $SYMLINK > /dev/null 2>&1 && \ VALID=1 # Check for valid target dir [[ -n VALID ]] || \ [[ -L $SYMLINK ]] && \ pushd $SYMLINK > /dev/null 2>&1 && \ VALID=1 popd > /dev/null 2>&1 -- Theo Chatzimichos (tampakrap) | blog.tampakrap.gr Gentoo KDE/Qt, Planet, Overlays

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
Re: [gentoo-user-el] check symlink validity mrJesus <mrJesusSuperstar@×××××.com>