Bagaimana cara menukar dua argumen baris perintah terakhir?


5
$ ln -s ./dir/target.txt /path/to/source.txt{cursor here}

Bagaimana cara swap file yang diketikkan nama file di baris perintah? Alt+ Tbertukar kata, bukan nama file, menghasilkan ln -s ./dir/target.txt /path/to/txt.source.

Idealnya solusi juga harus diinterpretasikan "filenames with quotes.txt"dengan benar.

Bisakah itu dilakukan dengan beberapa konfigurasi readline dan / atau bash, atau dengan beberapa pintasan pintas yang ada?


Jawaban:


5

Sebagian jawaban berdasarkan ini . {}menunjukkan kursor:

$ ln -s ./dir/target.txt /path/to/source.txt{}

Ctrl+ W(ulangi ini jika satu kali saja tidak cukup, tetapi jangan Backspace)

$ ln -s ./dir/target.txt {}

Ctrl+ { , , , }, ,

$ ln -s {}./dir/target.txt 

Ctrl+ Y,Space

$ ln -s /path/to/source.txt. {}/dir/target.txt

Siap.


Berdasarkan jawaban Anda dan tautan yang Anda berikan, saya baru saja belajar banyak yang tidak saya ketahui tentang bash :) Di mana orang menemukan permata ini?
Madivad

4

Saya pikir ini bisa dilakukan dengan menggunakan perintah bang:

!:0 !:2 !:1

!:0 word designator 0, the zeroth word.
!:n The nth word.


man bash

Penunjuk kata, bagian.


Hanya memberikan cuplikan kode tidak cukup tanpa penjelasan.
peterh

Saya mengetik !:0 !:2 !:1setelah itu /path/to/source.txt, tetapi tidak ada yang terjadi. Jelas, saya tidak ingin mengeksekusi baris perintah yang salah.
Vi.

Word Designators Word designators are used to select desired words from the event.-> Acara? Apakah itu hal menjengkelkan ( bash: !": event not found) yang masuk ke jalan saya dan menjatuhkan baris perintah saya ketika saya lupa untuk melarikan diri !?
Vi.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.