Ber*_*ard 7 command-line shell bash io-redirection
通常,我在命令行上使用参数扩展,例如
cp a.{ext1,ext2}
Run Code Online (Sandbox Code Playgroud)
这是扩展到
cp a.ext1 a.ext2
Run Code Online (Sandbox Code Playgroud)
但是,在很多情况下,我不使用cp,而是使用另一种工具,我们称之为cat,我会做一些输出重定向,比如
cat a.ext1 > a.ext2
Run Code Online (Sandbox Code Playgroud)
在我的情况下a可能会有所不同,或者很长,所以我希望能够使用某种括号扩展,至少只需要a在单行中出现一次。我怎样才能得到它?
我专门使用
$ bash --version
GNU bash, version 3.2.51(1)
Run Code Online (Sandbox Code Playgroud)
但是使用其他外壳的答案也很受欢迎。
Sté*_*las 11
您可以输入:
$ cat very-long-filename.ext1Ctrl+WCtrl+Y>Ctrl+YBackspace2
或者:
$ cat very-long-filename.Ctrl+WCtrl+Yext1>Ctrl+Yext2
要真正使用大括号扩展,请注意:
cat a.ext1 > a.ext2
Run Code Online (Sandbox Code Playgroud)
也可以写成:
cat > a.ext2 a.ext1
Run Code Online (Sandbox Code Playgroud)
但是你不能这样做:
cat > a.ext{2,1}
但是,您可以这样做:
eval cat \> a.ext{2,1}
Run Code Online (Sandbox Code Playgroud)