2016-10-22 5 views
2

今日は、Macでコマンドを見た:私は、タッチコマンドを使用することを知っているがどうしますか?:2はMacまたはLinuxの意味ですか?

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

を何!!:2は、このコマンドで行います。私はMacを持っていないし、Linuxで試してみました。誰かがこのような表現をもっと説明できるなら、それは素晴らしいことでしょう。

+0

表現が生成されます、我々はbashコマンド

ls -l /tmp 

を実行するのが前提としてみましょう体内のものとは異なります。両方について尋ねたいのであれば、おそらく両方が身体にあるはずです。 – jww

+0

@jwwそれはタイプミスでしたが、今では両方に特別な意味があることがわかりました –

+1

[中括拡張](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html) '{f1.txt、f2.txt}'はコンマの後のスペースのために展開されません。それはコマンドが書かれた方法ですか?おそらく間違いです。 – dawg

答えて

3

touchアップデートファイルのタイムスタンプ

!!は、このフォーム(2つの感嘆ドット)、「の別名で、bashの履歴ログから前のコマンドを取得し、「歴史展開」操作です! - 1 '

:2は、2番目のコマンド引数を検索する単語指定子です。例えば。以前の履歴コマンドがls -l /tmpの場合、!!:2は '/ tmp'にレンダリングされます

{f1.txt,f2.txt}は「ブレース拡張」と呼ばれます。ブレースの拡張には、エスケープされていない空白を含まない単一の単語列が必要です(これは間違いなく問題の誤植です)。例えば、foo{bar,baz}は、だから、 'foobarというのfoobaz'

に展開されますさて、touch !!:2/{f1.txt,f2.txt}はあなたがタイトルに尋ねる

touch /tmp/f1.txt /tmp/f2.txt 
+0

中括弧を展開するには、中括弧で始まる単語と末尾の単語が必要です。元の質問のスペースは中括弧の拡張を防ぎます。 – chepner

+0

@chepnerこのノートをお寄せいただきありがとうございます、この空白を削除していません – agg3l

0

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

!!前のコマンドを参照します。これは '!-1'の同義語です。

:2は2番目の引数を示します。例えばので

echo "content" > foo 
cp foo bar 
cat !!:2 
バーの内容を表示し

。 !!:2は前のコマンドの2番目の引数です。 あなたの例はどれですか?

(引数与えられていない現在の時間に、)
関連する問題