Как мне создать html-файл с текстом в отдельном каталоге от того, в котором я сейчас, все в одной команде?

Можно ли создать html-файл с уже содержащимся в нем текстом (я просто использую свое имя в качестве примера) в каталоге, отличном от того, который вы? в чем дело, все в одной команде? Я новичок в Ubuntu и буду благодарен за любую помощь.

2
задан 11 September 2020 в 11:18

3 ответа

Вы хотите скопировать этот файл в другой каталог?

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

или если вы хотите создать новый файл в другом каталоге ...

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

вы пишете все, что хотите написать .. .

затем для редактирования или записи чего-то нового в этот файл

nano /path/to/new/directory/file.html
0
ответ дан 4 January 2021 в 08:22

Чтобы избежать неудобства 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 .

2
ответ дан 4 January 2021 в 08:22

Вы можете использовать перенаправление , которое создает файл, если заданная цель не существует ( или перезаписывает файл, если это так, будьте осторожны). Вместо вывода команды, записываемой в терминал, она записывается в целевой файл.

echo "something" > target

Итак, замените target на путь к файлу, который вы хотите создать, и " something " с тем, что вы хотите поместить в файл ...

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

Каталог должен уже существовать, и у вас должно быть разрешение на запись в него. Если вы этого не сделаете, sudo вам не поможет, потому что перенаправление выполняется самой оболочкой, а оболочка не запускается от имени пользователя root. Однако есть способов обойти это . Одна из них - tee , это еще один вариант для вас (хотя, возможно, это делает его двумя командами). Команда tee записывает как в стандартный вывод (терминал), так и в указанный файл, поэтому она немного более информативна, чем использование перенаправления:

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

Эта | штука представляет собой "канал" ". Он превращает вывод команды слева от нее во ввод команды справа от нее. Таким образом, выход echo ( разные вещи ) становится входом tee .

Можно заставить echo выдавать многострочный вывод, используя параметр -e , хотя это довольно неудобно:

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

В приведенной выше команде я использовал относительный путь к файлу ( путь, который зависит от текущего местоположения). игровая площадка - это подкаталог текущего каталога, поэтому он отлично работает. Если вы используете абсолютный путь (например, / home / zanna / plays / file или ~ / plays / file или $ HOME / plays / file ), та же команда будет работать независимо от текущего рабочего каталога.

Я не знаю, что вы имеете в виду под html файлом. Возможно, у него должно быть просто расширение:

echo "$USER" | tee ~/subdirectory/file.html
11
ответ дан 4 January 2021 в 08:22

Другие вопросы по тегам:

Похожие вопросы: