2016-09-10 36 views
0

私はこのコマンドがうまくいくはずだと思いますが、そうではありません。私はそれは私が、私はタールに標準入力をリダイレクトするために必要なが、これはどちらか動作しません考え出しので、-fオプションは引数が必要と言われますtarファイル名をtarにパイプする方法はありますか?

にパイプに
ls file-* | tail -1 | tar -xvf 

を最高のファイル名の番号のファイルをしようとしています...

tar -xvf < ls file-* | tail -1 

おそらく変数に格納することはできますが、私は1行でやりたいと思います。

答えて

1

あなたがこれを行うことができます任意の空白/グロブ文字が含まれていない、あなたのファイル名と仮定すると:

ls file-* | tail -1 | xargs tar -xvf 
0

あなたのファイル名が空白またはグロブを含むされている場合は、あなたがこれを行うことができます:

tar -xvf "$(ls file-* | tail -1)" 

このcommand substitutionと呼ばれ、二重引用符で囲まれた場合、その結果は適切に引用されます。だから、ファイル名が

file-01 
file-02 

であれば、例えば、コマンドが

tar -xvf "file-02" 

に展開され、それらが引用されているので、これは、さえ空白とグロブで動作します。

関連する問題