Gibt es eine Verknüpfung, um den Pfad des ersten Arguments in einem MV-Befehl zu referenzieren?

8

Ich benutze oft mv, um eine Datei umzubenennen. ZB

%Vor%

Dazu muss ich den Pfad für den zweiten Parameter schreiben (ok, tab complete). In diesem Beispiel ist es nicht so schlimm, aber manchmal ist der Pfad tief verschachtelt und es scheint so, als ob ein bisschen mehr tippen würde.

Gibt es einen effizienteren Weg, dies zu tun?

    
Jack Kinsella 31.03.2011, 20:22
quelle

5 Antworten

11

Sie können die Verlaufserweiterung wie folgt verwenden:

%Vor%
  1. ! führt eine Verlaufserweiterung ein.
  2. # bezieht sich auf den Befehl, der gerade getippt wird
  3. ^ bedeutet das erste Argument
  4. :h ist ein Modifikator, um den "Kopf" zu erhalten, d. h. das Verzeichnis ohne den Dateiteil

Es wird in bash und zsh unterstützt.

Dokumente:

Mikel 31.03.2011, 20:26
quelle
17

Und ein anderer Weg: geschweifte Erweiterung .

%Vor%

Im Allgemeinen

%Vor%

wird zu

erweitert %Vor%

So ist es auch nützlich für andere Umbenennungen, z. B.

%Vor%

wird zu

erweitert %Vor%

Es funktioniert in bash und zsh .

Weitere Beispiele:

Mikel 31.03.2011 21:27
quelle
4

Eine Möglichkeit besteht darin, den ersten Dateinamen und ein Leerzeichen einzugeben und dann Ctrl + w zu drücken, um es zu löschen. Drücken Sie dann zweimal Ctrl + y , um zwei Kopien des Dateinamens zu erhalten. Bearbeiten Sie dann die zweite Kopie.

Zum Beispiel

%Vor%     
geekosaur 31.03.2011 20:25
quelle
1

oder cd apps/models && mv keywords_builder.rb keywords_generator.rb && cd -

    
glenn jackman 31.03.2011 21:28
quelle
0

Kombinierte Antworten von Mikel und Geekosaur mit zusätzlicher Verwendung von ": p"

Verwenden Sie die Klammererweiterung, um die Wiederholung des ersten Arguments zu vermeiden:

mv -iv {,old_}readme.txt # 'readme.txt' -> 'old_readme.txt'

mv -iv file{,.backup} # 'file' -> 'file.backup'

Verwenden Sie die Verlaufserweiterung, um die Wiederholung des ersten Arguments zu vermeiden:

mv -iv "system file" !#$.backup # 'system file' -> 'system file.backup'

Der Dateiname kann mit dem Bezeichner "p" für die weitere Ausgabe gedruckt werden:

mv -iv "file with a long name" !#$:p

Drücken Sie dann "↑", um den Befehl

zu bearbeiten     
Łukasz Rajchel 11.01.2018 20:07
quelle

Tags und Links