Het klinkt heel simpel en dat is het misschien ook, maar te Googlen is het in ieder geval niet.
Ik heb een Bash script dat 1 command line argument mee moet krijgen: een file, waarmee dingen gedaan gaan worden. Ik refereer vaak naar die file als ../foo/bar/interesting_file. Nu wordt er in het script van directory gewisseld, dus ik heb een absoluut pad naar die file nodig, om er later nog aan te kunnen refereren. Nu is dat eenvoudig te doen met
maar dat levert paden op als /home/ivo/baz/../foo/bar/interesting_file. Het werkt wel, maar als je de filename nog even ergens echoed, dan is het lelijk. Dus de vraag is simpel:
als ${1} = '../foo/bar/interesting_file', hoe kom ik dan aan het canonieke absolute pad naar 'interesting_file'?
Als het een symlink zou zijn, zou 'readlink' uitkomst brengen en zelf een script schrijven die telkens de .. volgt tot root is ook niet al te moeilijk, maar ik verwacht dat er een eenvoudige manier voor bestaat. Wie?
Ik heb een Bash script dat 1 command line argument mee moet krijgen: een file, waarmee dingen gedaan gaan worden. Ik refereer vaak naar die file als ../foo/bar/interesting_file. Nu wordt er in het script van directory gewisseld, dus ik heb een absoluut pad naar die file nodig, om er later nog aan te kunnen refereren. Nu is dat eenvoudig te doen met
Bash:
1
| FILE=`pwd`/${FILE} |
maar dat levert paden op als /home/ivo/baz/../foo/bar/interesting_file. Het werkt wel, maar als je de filename nog even ergens echoed, dan is het lelijk. Dus de vraag is simpel:
als ${1} = '../foo/bar/interesting_file', hoe kom ik dan aan het canonieke absolute pad naar 'interesting_file'?
Als het een symlink zou zijn, zou 'readlink' uitkomst brengen en zelf een script schrijven die telkens de .. volgt tot root is ook niet al te moeilijk, maar ik verwacht dat er een eenvoudige manier voor bestaat. Wie?
Wie trösten wir uns, die Mörder aller Mörder?