我在尝试将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
答案 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
。