Linux & Windows Links: schöner öffnen mit win_path

Wer einen Linux Desktop beruflich nutzt, bekommt je nach Umgebung diverse Aufgaben gestellt um sich in einem heterogenen Netzwerk zurecht zu finden. Dazu gehört zum Beispiel Lotus Notes ans Laufen zu bringen oder auch der gemeinsame Zugriff auf zentrale Laufwerke.

Fileserver werden (leider) recht selten unter Linux betrieben. Von daher muss man Möglichkeiten und Wege finden sich damit zu arrangieren. Im folgenden möchte ich ein Script vorstellen, welches einen Teil dieser Interoperabilität sehr einfach unterstützt.

Worum geht es ?

Man bekommt eine eMail. In dieser Mail wird auf ein zentral abgelegtes Dokument verwiesen. Wie ? Na ganz einfach per “I:\Ordner\Dokument.doc” – ein Link auf ein gemapptes Laufwerk. Unter Ubuntu darauf klicken und Firefox (das wird als Link verstanden) sagt “Ich weiß nicht wirklich was ich damit machen soll !”.

Lösung !

Ich habe ein Script geschrieben, welches dieses Szenario wie folgt löst:

  1. Link kopieren
  2. Script starten
  3. es öffnet sich Nautilus, bzw. die Anwendung

Das ganze hört sich erst einmal komplizierter an als es ist. Das Script starten kann man eleganter weise nämlich z.B. über gnome-do oder mit einem einfachen Shortcut unter Gnome erledigen. Dann macht das ganze auch Sinn und ist komfortabel.

Prerequisites:

  • libnotify-bin
  • xclip
  • um gemappte Laufwerke (s. Beispiel oben) zu nutzen, müssen diese an einem zentralen Punkt beispielsweise per auto-mounter zur Verfügung stehen. Im Script ist das ganze bei mir unter /mnt/cifs/ gemappt. Diese einzelnen Laufwerke und deren Pfade müssen im Script angepasst werden.
#!/usr/bin/perl -w
#
# Script zum oeffnen von Windows "Links" unter Ubuntu
#
#  - Umsetzung von Links wie I:\Ordner\dokument.doc
#   - das Dokument wird direkt geoeffnet
#  - Umsetzung von Links wie I:\Ordner
#   - der Ordner wird in Nautilus geoeffnet
#  - Umsetzung von Links wie \\Server\... wird ebenfalls unterstuetzt
#
# Prerequisites:
#  - libnotify-bin
#  - xclip
#
# Ronny Becker, 02.2009

# get clipboard data
$path=`xclip -o -selection c`;
chomp($path);
# show information
system("DISPLAY=:0.0 dbus-launch /usr/bin/notify-send -u low -t 3000 \"Win Path\" \"\nöffne\n\n\'$path\'\"");

if ( $path !~ /[a-zA-Z]/ ) { exit; }

# LW \\...
if ( $path =~ /^\\\\/ ) {
 $path =~ s/^\\\\/smb:\/\//;
}

# for each drive a separate config
# LW Q (Dokumentation)
if ( $path =~ /^[qQ]:/ ) {
 $path =~ s/^[qQ]:/\/mnt\/cifs\/Q/;
}

# mapped drive I
if ( $path =~ /^[iI]:/ ) {
 $path =~ s/^[iI]:/\/mnt\/cifs\/I/;
}

# mapped drive W
if ( $path =~ /^[wW]:/ ) {
 $path =~ s/^[wW]:/\/mnt\/cifs\/W/;
}

# mapped drive L
if ( $path =~ /^[lL]:/ ) {
 $path =~ s/^[lL]:/\/mnt\/cifs\/L/;
}

# set \ to /
$path =~ s/\\/\//g;

# if the link target is a document use xdg-open, otherwise open with nautilus (folder)
if ( $path =~ /\.[a-z]{3}$/ ) {
 system("xdg-open \"$path\"");
} else {
 system("nautilus \"$path\"");
}

Download: win_path

Damit man sieht, dass das Script auch ausgeführt wird, wird der an das Script übergebene Link per “Bubble” angezeigt. Das Script kann natürlich auch auf der Konsole ausgeführt werden – z.B. zur Fehlersuche.

[Update]

Ein Update wegen eines xclip Problems gibt es hier.

3 Responses to Linux & Windows Links: schöner öffnen mit win_path

  1. Da es in Unix-/Linux-Filesystemen praktisch keinerlei Einschränkungen bzgl. der verwendbaren Zeichen gibt (ausgenommen /), wäre es doch nur logisch, den Pfad z.B. /mnt/cifs/Q: zu nennen!

    • Ronny

      Ja klar, das geht auch – hat den Vorteil dass man weniger konvertieren muss. Ich wollte mir damit etwaige Probleme (maskieren) ersparen.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>