Можно просто проверить пользовательское использование ENV:
su -l user_name -c "run_programm && env"
Или можно проверить env
из дочернего процесса при помощи он - pid,
предположите, что Ваш pid дочернего процесса 24112
, затем просто проверьте env
использование:
cat /proc/24112/environ
] В [] updateb.conf[
] для этого нет возможности. Вам придётся организовать передачу опций в []updateb[
] вручную.[
]С помощью []updateb из GNU findutils[], pass []--localpaths[
].[
updatedb --localpaths '/ /media/win_c/somewhere/Music /media/win_c/somewhere/Photos'
]
[]С помощью []updateb из mlocate[], не появляется способа указать несколько корней или исключить каталог из обрезки, так что я думаю, что вы застряли с одной базой данных на каждый каталог. Установите переменную окружения []LOCATE_PATH[
] в список БД:[
updatedb --output ~/.media.mlocate.db --database-root /media/win_c/somewhere --prunepaths '/media/win_c/somewhere/Videos'
export LOCATE_PATH="/var/lib/mlocate/mlocate.db:$HOME/.media.mlocate.db"
] ] В реализации "mlocate" используйте опцию [] --database-root [
], ничего не подрезая. В man-странице updateb(8):[
-U, --database-root PATH
Store only results of scanning the file system subtree rooted at
PATH to the generated database. The whole file system is
scanned by default.
]
[]Но вам может понадобиться и отдельный выходной файл ([]--output[
]). Я не уверен, что вы можете объединить обе базы данных (вы можете попробовать).[
]Другие реализации могут иметь похожие опции.[
].Попался, теперь понял.. или? mlocate не так просто, но это работает довольно хорошо для каждого -U, --база данных -корневой ПУТЬ в mlocate кажется, вам нужна новая БД!?
Использование:<script>
'термин'
#!/bin/dash
dbfile="$HOME/.recordings.locate.db";
daysToUpdate=7;
create=0;
# list of paths
paths="/master/media/music /media/recordings";
# list of terms
termA=$( echo "$1" | sed 's/ /\\ /g' );
termB=$( echo "$1" | sed 's/ /_/g' );
# realtime scan:
#find $paths -iname "*$termA*" -o -iname "*$termB*"
# --
if [ ! -f "$dbfile" ]; then
create=1;
fi
if [ "$create" -ne 1 ] && [ $(find "$dbfile" -mtime +$daysToUpdate -print) ];
then
echo "File $dbfile exists and is older than $daysToUpdate days"
create=1;
fi
if [ "$create" = "1" ] ; then
echo "Update custom dbs please wait...";
touch "$dbfile"; # mark for inside actions
cnt=0;
for path in $paths
do
echo "scan: $path to $dbfile.$cnt";
updatedb -l 0 -U $path -o "$dbfile.$cnt";
cnt=$(expr $cnt + 1);
done
fi
cnt=0;
for path in $paths
do
echo "scan: $path of cache $dbfile.$cnt";
locate -d "$dbfile.$cnt" $termA
locate -d "$dbfile.$cnt" $termB
cnt=$(expr $cnt + 1);
done