приветствую, о всезнающий олл!
Потребовалось оградить find от определенных подкаталогов и нагуглил конструкцию "-not -path /path/*". Если перечислить все пути в команде - всё работает. Если список параметров занести в переменную и подставить её - результат не соответствует ожидаемому.
Скажем скрипт:
----------
#!/bin/sh
#Работает
find ./s -not -path "./s/d2/*" -not -path "./s/d4/*" -print >s-exclude.files
#./find-subdir.sh
#echo $exclude выдает:
# -not -path "./s/d2/*" -not -path "./s/d4/*"
#Хочу
exclude='
-not -path "./s/d2/*"
-not -path "./s/d4/*"
'
echo $exclude
find ./s $exclude -print >s-excl.files
----------
Вот как раз в результате: s-excl.files есть все файлы без исключений.
Что я делаю не так?
Как сделать чтобы список исключаемых можно было легко и читаемо изменять?
Банальная задача: получить список файлов измененных вчера т.е. find / -not -path «/proc/*» -not -path «/home/*» -not -path «/tmp/*» -mtime 1 -mtime -2 -exec ls -al {} \; но /home, /proc, /tmp, и.т.д из переменной.