Можно ли создать html-файл с уже содержащимся в нем текстом (я просто использую свое имя в качестве примера) в каталоге, отличном от того, который вы? в чем дело, все в одной команде? Я новичок в Ubuntu и буду благодарен за любую помощь.
Вы хотите скопировать этот файл в другой каталог?
cp <filename> <path/to/new/directory>
или если вы хотите создать новый файл в другом каталоге ...
nano file.html /path/to/new/directory
вы пишете все, что хотите написать .. .
затем для редактирования или записи чего-то нового в этот файл
nano /path/to/new/directory/file.html
Чтобы избежать неудобства 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
.
Вы можете использовать перенаправление , которое создает файл, если заданная цель не существует ( или перезаписывает файл, если это так, будьте осторожны). Вместо вывода команды, записываемой в терминал, она записывается в целевой файл.
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