是否可以在一个与您所在的目录分开的目录中创建一个包含一些文本的 html 文件(我将仅以我的名字为例),所有这些都在一个命令中?我对 Ubuntu 很陌生,任何和所有帮助都将不胜感激。
Zan*_*nna 11
您可以使用redirection,如果给定的目标不存在,它会创建一个文件(如果存在则覆盖该文件,所以要小心)。不是将命令的输出写入终端,而是将其写入目标文件。
echo "something" > targetRun Code Online (Sandbox Code Playgroud)
因此,替换target为要创建的文件的路径,以及"something"要放入文件中的内容...
echo "zanna s" > /home/zanna/playground/new-file
Run Code Online (Sandbox Code Playgroud)
该目录必须已经存在,并且您必须具有在那里写入的权限。如果你不这样做,sudo将不会帮助你,因为重定向是由 shell 本身完成的,并且 shell 不是以 root 身份运行的。不过,有办法解决这个问题。其中之一是tee,这是您的另一个选择(尽管这可能使它成为两个命令)。该tee命令同时写入标准输出(终端)和指定文件,因此它比使用重定向提供更多信息:
echo "various things" | tee /path/to/file
Run Code Online (Sandbox Code Playgroud)
这个|东西就是“管子”。它将左侧命令的输出转换为右侧命令的输入。所以echo( various things)的输出变成了 的输入tee。
可以echo使用该-e选项进行多行输出,尽管这很尴尬:
zanna@peach:~$ echo -e "things\non\nseveral\nlines\n" | tee playground/new-file
things
on
several
lines
Run Code Online (Sandbox Code Playgroud)
在上面的命令中,我使用了文件的相对路径(取决于当前位置的路径)。playground是当前目录的子目录,所以这工作正常。如果您使用绝对路径(例如/home/zanna/playground/fileor~/playground/file或$HOME/playground/file),则无论当前工作目录是什么,相同的命令都将起作用。
我不知道你所说的 html 文件是什么意思。也许它应该有一个扩展名:
echo "$USER" | tee ~/subdirectory/file.html
Run Code Online (Sandbox Code Playgroud)