将命令输出写入文件

时间:2013-11-11 09:43:02

标签: shell

我在尝试将shell命令的输出写入文件时遇到问题。

这有效

cssbeautify basket.css > file.css

这不是。 basket.css现在没有内容

cssbeautify basket.css > basket.css

这是正常行为吗?如何绕过它?

编辑:这是我用来美化文件夹中所有文件的命令。您可能会发现它很有用。

for f in *;
do cssbeautify $f > temp_file && mv temp_file $f;
done

2 个答案:

答案 0 :(得分:4)

您不能将文件用作“模式”并重定向到它。

使用例如:

cssbeautify basket.css > temp_file && mv temp_file basket.css

它将创建temp_file和-in情况下第一个命令成功运行 - 然后将其覆盖为basket.css

答案 1 :(得分:2)

cssbeautify从basket.css读取,美化它并写入STDOUT

使用> basked.css指示shell将输出写入basked.css。在此之前,文件内容被清除。 cssbeautify因此读取一个空文件并输出一个空文件。

所以这是正常的行为。你可以写一个临时文件,然后写mv