为什么我的shell脚本会创建一个名为pipe的文件?

时间:2010-12-05 23:17:21

标签: bash pipe named-pipes

我有这个简单的设置:

pwd
/home/abc/pipetest

ls
mydir  pipetest.sh

现在我做了:

 ./pipetest.sh

然后我得到

  ls
  file.tar.bz2  mydir  pipe  pipetest.sh

我的问题是:为什么创建名为pipe的文件?它包含一些使用vi无法看到的字符。发生了什么事?

pipetest.sh包含:

#!/bin/sh

directory_name=mydir
tar cf pipe $directory_name
bzip2 -c < pipe > file.tar.bz2

2 个答案:

答案 0 :(得分:3)

tar cf pipe $directory_name将tar文件写入名为pipe的文件。

您要做的是使用实际的管道:

tar c $directory_name | bzip2 > file.tar.bz2

或者只是使用

tar cjf file.tar.bz2 $directory_name

答案 1 :(得分:0)

tar -cf pipe

在当前目录中创建名为“pipe”的tar文件。