簡體   English   中英

!!:2在Mac或Linux中是什么意思?

[英]What does !!:2 mean in Mac or Linux?

今天,我在Mac中看到一個命令:

touch !!:2/{f1.txt, f2.txt}

我知道使用touch命令,但是!!:2在此命令中有什么用。 我沒有Mac並在Linux上嘗試過它給出了一些奇怪的輸出。 如果有人可以解釋更多這樣的表達,那將是很棒的。

touch更新文件時間戳(到當前時間,不帶參數)

!! 是“歷史記錄擴展”操作,以這種形式(兩個感嘆號)從bash歷史記錄日志中檢索先前的命令,別名為“!-1”

:2是單詞說明符,檢索第二個命令參數。 例如,如果以前的歷史記錄命令是ls -l /tmp ,則!!:2將呈現為'/ tmp'

{f1.txt,f2.txt}被稱為“括號擴展”。 括號擴展要求單個字符串沒有空白字符(這絕對是問題中的錯字)。 例如, foo{bar,baz}將擴展為'foobar foobaz'

因此,假設我們運行bash命令

ls -l /tmp

現在, touch !!:2/{f1.txt,f2.txt}將產生

touch /tmp/f1.txt /tmp/f2.txt

https://tiswww.case.edu/php/chet/bash/bashref.html

指上一條命令。 這是“!-1”的同義詞。

:2引用第二個參數。

因此,例如:

echo "content" > foo
cp foo bar
cat !!:2

顯示欄的內容。 !!:2是上一個命令的第二個參數。 您的示例中是哪一個?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM