LS
, без параметров или чего-либо, будет «перечислить текущий каталог». По умолчанию «Перечисление каталога» относится к файлам, которые содержатся в нем.
Изменения флага --D
не для перечисления файлов в указанном каталоге, но для перечисления информации о самом каталоге. Это не так, как вы по ошибке подумали, ссылаясь на «каталоги в текущем каталоге». Это относится только к «текущему каталогу».
LS
Вот почему LS -D
возвращает только .
.
Может быть, этот пример просто слишком упрощен, но мне трудно понять, почему вы просто не запустили:
cp /etc/httpd/conf/httpd.conf /a.txt
То есть, уже есть команда, которая просто читает из одного файла и создает другой с его содержимым, и она называется cp
. Единственная реальная разница была бы, если бы /a.txt
уже существовал и вы пытались сохранить его разрешения, или что-то в этом роде - но даже тогда вы бы захотели просто сделать:
cat /etc/httpd/conf/httpd.conf >/a.txt
Чтобы выполнить команду с HERE-DOC в фоновом режиме, укажите &
в первой строке:
command << EOF &
blah blah
EOF
В данном конкретном случае, я не вижу в этом смысла. Вы уже перенаправляете stdout в a.txt, почему вы хотите перенаправить его в /dev/null одновременно?
.Я думаю, вам стоит сделать:
cat </etc/httpd/conf/httpd.conf >/a.txt
Попробуйте, так как я могу не заметить, что код в вашем вопросе должен иметь какой-то другой эффект.
когда вы:
cat <file
... или...
cat <<FILE
$(shell generated file contents)
FILE
Вы просто копируете стандарт кота
в его стандарт. Так что в этом сценарии:
<<FILE
`cat <file`
FILE
<<ФАЙЛ
и <ФАЙЛ
идентичны.