使用 touch 在终端中写入文本文件

使用 touch 在终端中写入文本文件

我到处都找过了,感觉很绝望

我的文件是这个

 mkdir -p ~/Desktop/new_file && echo "hello\\world > ~/Desktop/new_file.txt

我也尝试过

 hello\n world

 hello ; world

我正在尝试从终端完成一个多行句子的返回信号到我的 hello world 输出

答案1

的手册页echo显示以下内容:

DESCRIPTION
       Echo the STRING(s) to standard output.

       -n     do not output the trailing newline

       -e     enable interpretation of backslash escapes

       If -e is in effect, the following sequences are recognized:
       
       \\     backslash
       
       \n     new line

这意味着如果您想要多行输出,您只需从 开始echo -e并添加\n新行即可。

mkdir -p ~/Desktop/new_file && echo -e "hello\nworld" >> ~/Desktop/new_file/new_file.txt

希望这可以帮助!

答案2

如果我正确理解了你的问题你想使用:

echo "hello" > ~/Desktop/new_file.txt && echo "world" >> ~/Desktop/new_file.txt

然后使用cat ~/Desktop/new_file.txt以下命令检查结果:

hello
world

有一种更简单的方法可以做到这一点,但我自己对 Linux 还不太熟悉。

答案3

首先,虽然你的标题提到touch,但你实际使用的命令是,mkdir所以你创建了一个目录称为new_file。您将无法按new_file原样写入文本。

实际上,没有必要在单独的步骤中创建目标文件:如果文件尚不存在,则将命令的标准输出重定向到命名文件将自动创建该文件。您可以删除(空) new_file 目录使用 rmdir ~/Desktop/new_file


出于以下原因为什么 printf 比 echo 更好?你可能想考虑使用

printf 'Hello\nworld\n' > ~/Desktop/new_file

或使用这里的文件

cat > ~/Desktop/new_file
Hello
world

它允许您直接输入多行文本,完成后用Ctrl+终止输入。D

无论哪种情况,如果您想要附加到文件而不是覆盖文件的现有内容,都可以用>替换。>>

相关内容