DSIW

Alles was interessant ist... (Linux, Programmierung, Datenschutz, Medien, uvm.)

Dateimanagement auf der Konsole

| Comments

Die Dateiverwaltung mit der Konsole ist manchmal recht mühselig. Immer wieder müssen die Verzeichnisse gewechselt werden, Dateien müssen angelegt, umbenannt, kopiert oder verschoben werden. Für jede Aktion muss wieder ein neuer Befehl eingegeben werden oder der Dateiname muss immer wieder angegeben werden.
Klar, dass die Autovervollständingung mittels der Tab-Taste eine große Hilfe ist und die zsh dazu beiträgt, aber seien wir doch mal ehrlich. Auf Dauer ist es recht zeitaufwändig.
Ich habe es selbst gemerkt, da ich diese Dinge seit mehr als einem Jahr tue.

Seit kurzem nutze ich dafür einen Dateimanager, mit dem viel Zeit gespart werden kann. Ich hatte mir vorher schon ein paar Dateimanager für die Konsole angesehen. Zum Beispiel habe ich mal den Midnight Commanger ausprobiert, aber nach einem kurzen Testen hat er mir nicht gefallen.

Außerdem gibt es noch Dateimanager, die die Tastenkombinationen von vim nutzen, sodass ich nicht viel umlernen muss und viel Funktionalität vorhanden ist. Unter diesen Dateimanagern habe ich zwei entdeckt. Der eine nennt sich Ranger, der andere VIFM. Ranger gefiel mir nicht sonderlich, da ich schon eine zweigeteilte Sicht haben wollte. Das Löschen von Dateien hatte auch nicht sehr gut funktioniert. Die Tastenkombination dd sollte dies tun -- tat es aber nicht.
In VIFM ist das schon besser. Es hat eine zweigeteilte Sicht und die normalen Tastenkombinationen fuktionieren intuitiv richtig. Ein paar von diesen sind nachfolgend dargestellt:

k      moves up.
j      moves down.
h      moves up one directory.
l      moves into a directory or launches a file.
gg     move to the top of the file list.
G      move to the bottom of the file list.
H      move to the first file in the window.
M      move to the file in the middle of the window.
L      move to the last file in the window.
e      explore file in the current pane.
i      opens file with associated program even if it's an executable.
cw     rename a file or files.
cW     change only name of file (without extension).
cl     change link target.
yy     yanks the selected files.
dd     moves the selected files to the trash directory.
DD     removes the selected files.
p      will copy the yanked files to the current directory or move the files to the current 
       directory if they were deleted with dd or :d[elete] or if the files were yanked from 
       the Trash directory.
u      undo last change.
Ctrl-R redo last change.
v      enter visual mode.
V      enter visual mode.
C      clone file [count] times.

Standardprogramme

Damit nach dem Öffnen von Dateien automatisch das richtige Programm gestartet wird, habe ich meine Konfiguration um ein paar Zeilen erweitert:

``` text Auszug aus ~/.vifm/vifmrc " FuseZipMount filetype .zip,.jar,.war,.ear FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR

" Documents filetype .pdf,.djvu,*.ps evince

" Media filetype .avi,.mov,.mkv,.wmv,.mp4 vlc filetype .mp3 mpg123 filetype .jpg,.jpeg,.gif,.png,.bmp,.tiff eog

" ISOs filetype *.iso mountiso ```

Funktionen

Dieser Filemanager hat verschiedene nützliche Funktionen, die nachfolgend vorgestellt werden.

Mapping

Durch die Befehle :map, :noremap, :unmap lassen sich eigene Tastenkombinationen erstellen und löschen.

Suchen

Das Suchen geschieht mit dem Zeichen /, wie es in VIM auch der Fall ist. Der nächste passende Treffer wird mit n und der vorherige mit N gefunden.

Filter

In der Default-Ansicht werden keine versteckten Dateien (Dot-Files) angezeigt. Nachdem man za eingegeben hat, werden auch diese angezeigt, sodass das Navigieren darin möglich ist.

Durch den Befehl :filter /regex/ werden alle Dateien nach dem entsprechenden Regulären Ausdruck (Regex) gefiltert. Zum Beispiel habe ich einen Ordner, in dem einige Videos vom 28C3 enthalten sind. Diese würde ich gerne nach deutschen Videos filtern. Der Inhalt des Verzeichnisses sieht entsprechend aus:

[...] 28c3-4800-en-how_governments_have_tried_to_block_tor_h264.mp4 28c3-4802-en-towards_a_single_secure_european_cyberspace_h264.mp4 28c3-4804-de-politik_hacken_h264.mp4 28c3-4811-en-rootkits_in_your_web_application_h264.mp4.part 28c3-4813-en-macro_dragnets_h264.mp4 28c3-4814-en-behind_the_scenes_of_a_c64_demo_h264.mp4 28c3-4816-en-7_years_400_podcasts_and_lots_of_frequent_flyer_miles_h264.mp4 28c3-4818-en-evolving_custom_communication_protocols_h264.mp4 28c3-4821-en-not_your_grandfathers_moon_landing_h264.mp4 28c3-4826-en-a_brief_history_of_plutocracy_h264.mp4 28c3-4828-de-antiforensik_h264.mp4 28c3-4832-de-neue_leichtigkeit_h264.mp4 28c3-4844-de-eu_datenschutz_internet_der_dinge_h264.mp4 28c3-4847-en-reverse_engineering_usb_devices_h264.mp4 28c3-4848-en-the_coming_war_on_general_computation_h264.mp4 28c3-4856-en-the_engineering_part_of_social_engineering_h264.mp4 28c3-4866-de-fnord_jahresrueckblick_h264.mp4 [...]

Mit den beiden folgenden Befehlen werden nur deutsche Videos angezeigt:

:filter /28c3-.{4}-de.*/
:invert

oder abgekürzt mit

:filter! /28c3-.{4}-de.*/

Ich hatte auch /28c3-\d{4}-de.*/ ausprobiert, aber leider wurde \d nicht als Zahl erkannt.

Die Ausgabe ist danach:

[...] 28c3-4804-de-politik_hacken_h264.mp4 28c3-4828-de-antiforensik_h264.mp4 28c3-4832-de-neue_leichtigkeit_h264.mp4 28c3-4844-de-eu_datenschutz_internet_der_dinge_h264.mp4 28c3-4866-de-fnord_jahresrueckblick_h264.mp4 [...]

Marks

Ich habe mir ein paar Markierungen gesetzt, um schnell zu diesen Ordnern zu gelangen. Das folgende steht in meiner Konfiguration:

text Auszug aus ~/.vifm/vifmrc mark h /home/dsiw ../ mark b /home/dsiw/.blog source/ mark d /home/dsiw/downloads ../

Es können Markierungen aber auch dynamisch während der Laufzeit von VIFM gesetzt werden, indem man ein m vor einen Buchstaben setzt. Zum Beispiel wird mG eine Markierung gesetzt. So lässt sich die aktuelle Position des Fensters mit 'G wieder aufrufen.

Weitere Funktionen

  • Durch den Befehl :view wird der Inhalt der aktuellen Datei im rechten Fenster dargestellt.
  • Der Befehl :sync bewirkt, dass der eigene Standort im anderen Fenster aufgerufen wird.
  • Hat man sich in einen bestimmten Ordner gehangelt, dann reicht der Befehl :sh[ell], um eine Shell in diesem Ordner zu öffnen.
  • Es lassen sich alle Befehle in einer Shell auch in VIFM ausführen. Dazu muss vor diesen Befehl ein :! stehen: also um Bepsiel :!ls -lah.
  • uvm.

Weitere Informationen

Kennt ihr noch weitere oder sogar bessere Dateimanager, die auf der Konsole genutzt werden können? Welche nutzt ihr?

Comments