如何使用一个命令在与我所在目录不同的目录中创建一个包含文本的 html 文件?

如何使用一个命令在与我所在目录不同的目录中创建一个包含文本的 html 文件?

是否可以在一个命令中创建一个包含一些文本的 html 文件(我仅使用我的名字作为示例),放在与您所在目录不同的目录中?我对 Ubuntu 还很陌生,如能得到任何帮助我将不胜感激。

答案1

您可以使用重定向,如果给定的目标不存在,则创建一个文件(如果存在,则覆盖该文件,因此请务必小心)。命令的输出不会写入终端,而是写入目标文件。

echo "something" > target

因此,将其替换target为您要创建的文件的路径,以及"something"您想要放入文件中的内容......

echo "zanna s" > /home/zanna/playground/new-file

该目录必须已经存在,并且您必须具有在该目录中写入的权限。如果没有,sudo则不会帮助您,因为重定向是由 shell 本身完成的,并且 shell 不是以 root 身份运行的。解决这个问题的方法不过, 。其中之一是tee,这是您的另一个选择(尽管这可能使其成为两个命令)。该tee命令同时写入标准输出(终端)和指定文件,因此它比使用重定向更具信息性:

echo "various things" | tee /path/to/file

这个|东西就是一个“管道”。它把左边命令的输出变成右边命令的输入。所以echo( various things) 的输出就变成了 的输入tee

可以echo使用选项提供多行输出-e,尽管这很尴尬:

zanna@peach:~$ echo -e "things\non\nseveral\nlines\n" | tee playground/new-file
things
on
several
lines

在上面的命令中,我使用了文件的相对路径(取决于当前位置的路径)。playground是当前目录的子目录,因此这可以正常工作。如果您使用绝对路径(例如/home/zanna/playground/file~/playground/file$HOME/playground/file),则无论当前工作目录是什么,相同的命令都将起作用。

我不知道你说的 html 文件是什么意思。也许它应该有一个扩展名:

echo "$USER" | tee ~/subdirectory/file.html

答案2

为了避免echo多行文字的尴尬,可以使用另一个 bash 功能:

cat > /path/to/my_file.html << EOF
<!DOCTYPE html>
<html>
    <head>
        <title>Simple example</title>
    </head>
    <body>
        <p>You just wrote `echo HTML` file with $SHELL as user ${USER}!</p>
    </body>
</html>
EOF

请注意,EOF 可以是任何字符串,只要它不出现在输入中的单独行上即可。另请注意,一些 bash 构造(如反引号和变量替换)仍然有效。

如果您以交互方式而不是使用脚本来执行此操作,那么类似编辑器的程序nano可能更适合这项工作。

答案3

您想将该文件复制到另一个目录吗?

cp <filename> <path/to/new/directory>

或者如果您想在另一个目录中创建一个新文件......

nano file.html /path/to/new/directory

你想写什么就写什么……

然后在该文件中编辑或写入新内容

nano /path/to/new/directory/file.html

相关内容