Bash

Bash命令在游標之前複製並在之後粘貼?

  • October 13, 2016

我不知道該怎麼說,但我經常發現自己在輸入這樣的命令:

cp /etc/prog/dir1/myconfig.yml /etc/prog/dir1/myconfig.yml.bak

我通常只輸入兩次路徑(使用製表符完成),或者我將使用游標複製並粘貼路徑。是否有一些 bashfoo 可以使輸入更容易?

有很多技巧(我認為有一個重複的),但為此我傾向於這樣做

cp /etc/prog/dir1/myconfig.yml{,.bak}

它會擴展到您的命令。

這稱為大括號擴展。在此處使用的形式中,{}表達式指定了多個用逗號分隔的字元串。這些“擴展”整個/etc/prog/dir1/myconfig.yml{,.bak}表達式,{}依次用每個字元串替換部分:空字元串,給/etc/prog/dir1/myconfig.yml,然後.bak,給/etc/prog/dir1/myconfig.yml.bak。結果是

cp /etc/prog/dir1/myconfig.yml /etc/prog/dir1/myconfig.yml.bak

這些表達式可以嵌套:

echo a{b,c,d{e,f,g}}

生產

ab ac ade adf adg

有一個使用數字產生序列的變體:

echo {1..10}

生產

1 2 3 4 5 6 7 8 9 10

您還可以指定步驟:

echo {0..10..5}

生產

0 5 10

引用自:https://unix.stackexchange.com/questions/315963