Что d показывает в процессах как syslogd и httpd?

Первый вопрос:

Ответ на Ваш первый вопрос quotes.

Вместо того, чтобы делать-> tar cvf backup.tar $LISTOFFILES

Сделайте это-> tar cvf backup.tar "$LISTOFFILES"

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

[jaypal:~] file="/home/user/Python Tutorial.pdf"

[jaypal:~] ls $file
ls: /home/user/Python: No such file or directory
ls: Tutorial.pdf: No such file or directory

Ошибка появилась для двух файлов /home/user/Python и Tutorial.pdf. Давайте поместим a quote к нашему variable и посмотрите то, что мы получаем.

[jaypal:~] ls "$file"
ls: /home/user/Python Tutorial.pdf: No such file or directory

Ошибка появилась только однажды для файла /home/user/Python Tutorial.pdf

Второй вопрос:

Сократить /path/to/file существует несколько путей. Мой фаворит был бы awk но я покажу Вам один для sed также.

sed метод:

[jaypal:~/Temp] echo "$filename"
/home/user/file1.pdf /home/user/file2.odt /home/user/Python Tutorial.pdf

[jaypal:~/Temp] echo "$filename" | sed 's@/home/user/@@g'
file1.pdf file2.odt Python Tutorial.pdf

Можно включать его в сценарий как это -

LISTOFFILES=$(find ~ \( -name '*.[pP][dD][fF]' -o -name '*.[oO][dD][tT]' \) | sed 's@/home/user/@@g' )

Вещь помнить вот, мы делаем substitution. Мы занимаем место /home/user/ кому: nothing. Если Вы findфайлы луга больше чем из одного каталога затем можно или сделать тонны и тонны замен (yikes!) или делают awk путь.

awk метод:

awk -F"/" '{print $NF}'

Да, вот именно. Работал бы на файлы Вы find в соответствии с любым каталогом или их подкаталогами.

Таким образом, Ваш сценарий мог иметь это следующим образом -

LISTOFFILES=$(find ~ \( -name '*.[pP][dD][fF]' -o -name '*.[oO][dD][tT]' \) | awk -F"/" '{print $NF}')

Другие подсказки и приемы:

Вот некоторые случайные подсказки, что я думаю, может быть полезно для Вас -

Кому: find имена файлов insensitively, использовать iname вместо того, что Вы имеете прямо сейчас. Проверьте это -

[jaypal:~/Temp] find . -name "j*.txt"
./jP.txt

[jaypal:~/Temp] find . -iname "j*.txt"
./jj.TXT
./jP.txt

Другие способы сократить /path/to/file при помощи basename. Я дам пример, и можно включить его в сценарий, как Вы чувствуете себя комфортно.

[jaypal:~/Temp] filename="/usr/bin/java.pdf"

[jaypal:~/Temp] echo "$filename"
/usr/bin/java.pdf

[jaypal:~/Temp] basename "$filename"
java.pdf

Надеюсь, это поможет!

1
11.12.2012, 14:14
2 ответа

D короток для демона. Демон является продолжительным процессом, который предоставляет своего рода услугу.

http://en.wikipedia.org/wiki/Daemon_ (вычисления)

6
27.01.2020, 23:12

httpd и syslogd являются демонами, также известными как фоновые процессы. Ими обычно непосредственно не управляет конечный пользователь, а скорее выполняют постоянно и предоставляют услугу или выполняют процесс, который постоянно ожидает запроса или запроса.

httpd, например, ожидает клиентов для запроса его содержания, и syslogd постоянно прислушивается к журналам, которые будут отправлены в него так, они могут быть сохранены. sshd является другим известным демоном, который постоянно прислушивается к удаленному клиенту, чтобы запросить установить соединение SSH к устройству.

3
27.01.2020, 23:12

Теги

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