在UNIX中输出重定向

时间:2010-04-15 08:47:53

标签: unix redirect

我是UNIX的初学者。我发现输入/输出重定向有些困难。

  1. ls -l >temp

    cat temp

    这里为什么临时文件显示在列表中,而且它显示0个字符。

  2. wc temp >temp

    cat temp

    此处输出为0 0 0 temp。 为什么行,单词,字符为0。

  3. 请帮我理解这个概念。

3 个答案:

答案 0 :(得分:3)

当您将输出传递给文件时,会创建该文件,运行命令(因此ls将其列为空文件,并且wc计算空文件中的字符),然后将输出添加到文件中

......按此顺序。

答案 1 :(得分:3)

  1. 因为ls读取所有名称并在打印任何内容之前对它们进行排序,并且因为输出文件是在执行命令之前创建的,所以在ls检查temp的大小时{1}},它为空,因此它在列表中显示为空文件。

  2. wc读取文件时,它为空,因此它会在0行的0个字中报告0个字符,并在读完空文件后将此信息写入文件。

答案 2 :(得分:1)

您无法同时写入和读取同一文件。

所以:

wc file > file # NOT WORKING
# but this works:
wc file > file.stats 
mv file.stats file # if you want that