Tag: console
Create links with absolute paths in Linux
by Mostafa on Jan.16, 2010, under How To ..., Linux, Software
The default behaviour of the linking command (ln) is a little strange under certain circumstances. Since it creates the links using the literal value of the target, symbolic links created using relative path structures can often fail. Consider the following:
$ ln -s targetfile ../src/targetfile_link
Without a doubt, ‘targetfile_link’ will be a broken symlink since it links to a target that it assumes is in the same directory:
$ cd ../src && ls -l targetfile_link lrwxrwxrwx 1 mafgani mafgani 5 2010-01-16 18:19 targetfile_link -> targetfile
This is quite unfortunate since it clearly clashes with the way that the linking mechanism should work intuitively.
The solution is to force ln into automatically appending the absolute path to the target files. This can be achieved by using a simple shell script that acts as a wrapper for the real linking command:
#!/bin/sh # Step through the supplied arguments and append the absolute # path to targets that exist for ARG in $@ do if [ -e $ARG ]; then LNARGS="${LNARGS} ${PWD}/${ARG}"; else LNARGS="${LNARGS} ${ARG}"; fi done # Execute the actual link command with the modified args exec /bin/ln ${LNARGS};
There are two known caveats:
- The link is ‘sub-optimal’ if created from within the destination directory (the absolute path contains ‘../’s). It will still work however.
- The links will always be absolute. If that is undesirable, save the script as ‘absln’ or something other than ‘ln’.
Using ‘absln’ instead of ‘ln’ in the previously described scenario now produces a working symlink:
$ absln -s targetfile ../src/targetfile_link $ cd ../src/ && ls -l targetfile_link lrwxrwxrwx 1 mafgani mafgani 16 2010-01-16 19:13 targetfile_link -> /tmp/files/targetfile
Console based MSN client
by Mostafa on Nov.04, 2005, under Linux, Software
Earlier today I stumbled across a client for MSN Messenger that runs in a terminal! It’s called tmsnc.
The RPM had some dependencies that I could not solve so I decided to compile from source. Apart from a few minor issues, it looks great! There are some screenshots available here.
You might wonder why you need a text based MSN client; well, one can never have too many tools 🙂
Open files from a terminal
by Mostafa on Oct.05, 2005, under How To ..., Linux, Software
There’s lot that can be learned from the conversations on the fedora-list. Today I learnt of a nifty little tool called gnome-open. Basically you just type something like:
[darkknight@darkworld ~]$ gnome-open file.cpp
and voila! It figures out the default application (under GNOME) for the files of type *.cpp and opens the file using that default editor. I haven’t verified, but it seems that instead of a file an URL can also be specified. Mmm .. it definitely creates the possibility of writing portable scripts; at least on GNOME systems anyway 🙂