Не мог заставить команду работать с ударом-c

Определять местоположение база данных обычно настраивается для исключения файлов на съемных дисках, так как они, как может предполагаться, не там позже. Это может быть настроено через файл такой как /etc/updatedb.conf (местоположение зависит от который из нескольких locate программы, которые Вы используете и как это настроено Вашим распределением).

Для съемного диска, вероятно, лучше сохранить базу данных в отдельном файле. Выполненный

updatedb --localpaths=/media/my_removable_disk --output=/var/cache/locate/my_removable_disk.locatedb 

обновить базу данных. Добавить /var/cache/locate/my_removable_disk.locatedb к переменной среды LOCATE_PATH; поскольку довольно последние версии GNU располагаются, пустой компонент контура обозначает путь по умолчанию, таким образом, можно использовать

export LOCATE_PATH=:/var/cache/locate/my_removable_disk.locatedb

Если Вы хотите сохранить определять местоположение базу данных по съемному диску, не добавляйте путь к LOCATE_PATH, потому что locate взгляд остановок, если один из файлов базы данных отсутствует. Сценарий обертки был бы лучше:

locates () {
  locate "$@"
  for d in /media/*; do
    locate -d "$d/.locatedb" "$@"
  done
}
0
10.12.2013, 01:30
1 ответ

Необходимо выйти $ в двойных кавычках,

bash -c "netstat -tnlp 2>/dev/null | grep ':10301'  | grep LISTEN | awk '{print \$7}' | cut -d'/' -f1 | xargs -i -n1 cat /proc/{}/cmdline"

В Вашем случае, $7 интерпретируется в качестве параметра. Так awk будет работать {print} который печатает целую строку вместо намеченного поля.

2
28.01.2020, 02:37

Теги

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