Hallo,
Schöner Wohnen kann man ja seit vorgestern schon in Dresden, aber schöner Verzeichnisse und Dateien auflisten, das ist noch nicht so bekannt. So geht's: [Achtung: KDE-Alarm - dieses muß ab Version 2.0 von CVS installiert sein - siehe unten]
1. Aua, das tut weh, aber es muß sein: Umbenennung von /bin/ls nach /bin/old.ls.
2. Perl muß installiert sein, wenn nicht, entweder installieren oder über den 1. Schritt fluchen. Anschließend in einen Editor seiner Wahl gehen und auf Copy&Paste vorbereiten.
3. Einfügen in /bin/ls und entsprechend anpassen:
#!/usr/bin/perl $BASE = "/home/josef/KDE2.2/kdelibs/kio/tests"; $arg = "@ARGV"; $syscall = "ls.old $arg"; @comp = split(/\ /, $arg); foreach $c(@comp){ if($c =~ m/tar:/){ $c =~ s/tar://; $syscall = "$BASE/ktartest list $c"; } } print "KIO::execute: $syscall\n"; #debug system($syscall);
4. Entsprechend erweitern. Geübte Unixer werden zwar "gzip -cd x.tar.gz | tar -t | less" kennen, aber eine Standard-API für die Konsole ist doch besser - und es reicht vor allem zu, immer das innerste Protokoll bei Verschachtelungen anzugeben. Also z.B. "ls tar:whatdoyoucontain.tar.bz2". Und bei erweiterten Sachen wie ls -la pop3://ich:**@myhost/myaccount könnte so ein kleines Skript seine Stärken voll ausspielen. Oder wie wäre es, "cp" zu ersetzen - etwa für "cp ftp://host.com/mymp3track.tar.gz cdburner:/mymp3track", also live CD's brennen über FTP bei hinreichend schneller Verbindung und automatischer Dekompression?
5. Weil die KDE-Libs normalerweise nicht für die Konsole ausgelegt sind, muß man dafür kleine Hilfsprogramme schreiben, allerdings würde vielleicht schon eins ausreichen. Sowas wie wget oder scp hätte dann für die einfachen Fälle ausgedient. Wozu auch für alles das Rad neu erfinden, sind schließlich alles normale Dateioperationen.
6. Braucht das jemand? Würde es (einfache) Fälle geben, wo das IO-Slave-Konzept nicht anwendbar wäre?
Josef Spillner