如何在创建时写入文本文件?

时间:2015-01-23 17:24:44

标签: bash shell command-line terminal

我是自学的命令行代码,似乎无法找到答案。

我正在使用标准的MacOS终端应用程序来创建用于练习的目录/文件。

我的问题是,我可以使用代码来包含在创建文件时写入文件的内容吗?

我试过了:

touch one/texttest.txt echo "Hello"

但这只会创建3个文件,一个名为hello,一个名为echo,另一个名为texttest.txt,位于“one”文件夹中

我也试过这些并得到了相同的结果:

touch echo "Hello" ~/one/texttest.txt

echo Hello ~/one/texttest.txt

touch one/texttest.txt Hello

我似乎无法为带有0个插件的标准终端应用找到任何解决方案,这是否可能?

3 个答案:

答案 0 :(得分:2)

这应该有效:

echo "Hello" > one/texttest.txt

答案 1 :(得分:1)

touch one/texttest.txt echo "Hello"

这是带有三个参数的touch命令:one/texttest.txtechoHello(shell删除了引号)。

touch echo "Hello" ~/one/texttest.txt
touch one/texttest.txt Hello

这些与第一个相同(不同的论点,但概念相同)。

echo Hello ~/one/texttest.txt

这是带有两个参数的echo命令:Hello~/one/texttest.txt(只有~会在{{1}之前扩展到您的主目录看到了它。)

echo仅创建不会写内容的文件(并更新时间戳)。

您可以使用touch命令获取内容,但我不知道其中的内容。

幸运的是,你不需要一个,因为shell可以为你做到这一点。

您使用touch来运行echo Hello并让它吐出echo,并告诉shell"重定向"文本到文件而不是屏幕。

Hello

值得指出的是,无论你是否写入任何内容,重定向都会创建文件(事实上,无论命令是否有效,甚至是否存在命令)。

echo Hello > texttest.txt

因此,您可以单独使用$ ls /tmp/texttest.txt ls: /tmp/texttest.txt: No such file or directory $ flekjfe Hello > /tmp/texttest.txt $ ls /tmp/texttest.txt /tmp/texttest.txt 来创建一个新的空文件。

答案 2 :(得分:0)

您可以使用输出重定向command_output>文件

有关详情:http://tldp.org/LDP/abs/html/io-redirection.html