Wenn ich eine aufgerufene Datei longfile
von /longpath/
nach verschieben möchte, /longpath/morepath/
kann ich so etwas tun
mv (/longpath)/(longfile) $1/morepath/$2
dh kann ich die Bash wissen lassen, dass sie sich an einen bestimmten Teil der Eingabe erinnern soll, damit ich sie später in derselben Eingabe wiederverwenden kann? (Im obigen Beispiel verwende ich einen imaginären Erinnerungsbefehl, der in Klammern eingeschlossen ist, und einen imaginären Wiederverwendungsbefehl $
, der den Inhalt der Gruppen einfügt.)
bash
command-line
line-editor
Bananach
quelle
quelle
Antworten:
Sie könnten dies tun:
Siehe https://www.gnu.org/software/bash/manual/bashref.html#History-Interaction
!#
ist der aktuelle Befehl:1
ist das erste Argument in diesem Befehl:h
ist der "Kopf" - denkendirname
/morepath/
hängt das an den KopfWenn Sie den Namen "longfile" ändern möchten, fügen Sie beispielsweise die Erweiterung ".txt" hinzu
Persönlich würde ich mit meiner Maus ausschneiden und einfügen. In der Praxis werde ich nie viel komplizierter als
!!
oder!$
oder!!:gs/foo/bar/
quelle
Sie können dies auch mit der Erweiterung der Zahnspange tun:
Die Shell erweitert dies so, dass der
mv
Befehl es genauso sieht wie:quelle
Wenn Sie die Befehlszeile effizienter eingeben möchten , sind möglicherweise verschiedene Verknüpfungen für die Leseleitung hilfreich. Readline ist bereits in Ihre Shell integriert. Für Ihren speziellen Fall könnten Sie Teile Ihrer Linie ziehen / löschen und sie dann vom Readline-Killiring zurückrufen.
Wenn Sie die Umgebungsvariable EDITOR auf Ihren bevorzugten Editor eingestellt haben, kopiert Strg-X, Strg-E Ihre aktuelle Befehlszeile in das Editorfenster, in dem Sie die gesamte Editorleistung zum Ändern Ihrer Zeile haben können. Sobald Sie fertig sind, speichern Sie den Editor und beenden ihn. Die Zeile wird in Ihrer Shell ausgeführt.
quelle
set -o vi
in bashrc. Durch Drücken von esc in der Befehlszeile gelangen Sie in den normalen Modus von vim.set -o vi
mich selbst, aber es ist bei weitem nicht so leistungsfähig wie der normale Modus von Vim - es enthält eine Teilmenge der Befehle von POSIX vi. Trotzdem sehr nützlich und Sie können<Esc>v
den Befehl zum Bearbeiten in Vim öffnen.Für so etwas wie den speziellen Fall, nach dem Sie fragen, können Sie auch eine Unterschale verwenden.
wird
während Sie Ihr aktuelles Arbeitsverzeichnis in der Shell behalten, in der Sie arbeiten.
Dies ist nicht ganz unähnlich zu Wildcards Vorschlag, eine Shell-Erweiterung zu verwenden , kann jedoch für komplexere Situationen durchgeführt werden, als ein einfaches Etwas, das nur in einem Argument enthalten ist, ohne weiteres unterstützen kann.
quelle