Хорошо, таким образом, ответ - то, что программа красного смещения, на которую указывает Stéphane Gimenez в комментарии выше, может сделать это симпатичное просто. Это предназначено, чтобы сделать умную adjust-white-point-over-the-day вещь, но это может также быть сделано сделать одноразовые корректировки с -o
флаг.
Температура требуемого цвета в Kelvin должна быть дана дважды из-за основанных на времени функций, который является немного странным, но неважным. И другой материал должен просто там подавить unhelpful-in-this-case информационные сообщения — это не важно.
redshift -o -l 0:0 -m randr -t 6000:6000
Также важно отметить, что код предполагает, что нейтральный 6500. (И экспериментально, -t 6500:6500
кажется мне идентичен использованию -x
удалить эффекты полностью.) В моей системе, где я думаю, собственная белая точка является 9300K или так, я не уверен, что фактические числа заканчивают тем, что означали, но эффект выбора, что-то понижается, чем 6 500, конечно, точно, что я хочу.
Мне было любопытно, таким образом, я посмотрел на код. Красное смещение делает что-то немного более сложное, чем выполнение xgamma
— это имеет целую таблицу шкалы цветов с данными, полученными из http://www.vendian.org/mncharity/dir3/blackbody/. Я изучил бы его еще больше, но я думаю, что следующий шаг идет для настоящей надлежащей калибровки цветов.
find
будет работать волшебство на Вас.
find -name datafile.dat -execdir ~/a.py '{}' \;
Находка ищет рекурсивно во всех подкаталогах для файлов, которые соответствуют ряду правил, и выполняет действие с ними.
- правило имени позволит Вам найти файлы с именем, которое соответствует тому, что Вы даете ему. Можно использовать globbing, например, "*.dat" нашел бы все .dat файлы.
При необходимости можно использовать-regex вместо - имя для соответствия regex шаблону вместо шаблона шарика, таким образом, Вы могли сделать ".*\.dat$" для соответствия всем .dat файлам.
-execdir выполнит любую команду, которую Вы даете ему из каталога найденного файла, заменяя "{}" с найденным файлом.
Можно, вероятно, просто использовать a for
цикл:
for i in first_dir second_dir third_dir; do
pushd $i
a.py
popd
done
Это будет работать pushd $i; a.py; popd
с $i
набор к first_dir
, с другой стороны с $i
как second_dir
, и наконец $i
как third_dir
. pushd
переключатели к данному каталогу, и popd
переключатели назад туда, где Вы были
(cd $i && a.py)
. Эта конструкция также защищает от $i, не существующего - Вы не хотите к popd, если pushd не работал.
– camh
05.11.2010, 08:57
cd -- "$i"
. Кроме того, защитите команды от начала файлов -
путем передачи --
перед именами файлов.
– Gilles 'SO- stop being evil'
05.11.2010, 10:30
&&
если это возможно, потому что Вы просто никогда не знаете, когда Вы забудете, существует пространство в чем-то, или сделайте опечатку, заставляющую ключевую команду перестать работать, и в зависимости от того, когда оно кусает Вас, у Вас могла быть путаница для распутывания.
– Cascabel
06.11.2010, 04:11
find
, это имеет флаги для каждой мыслимой ситуации – Michael Mrozek♦ 06.11.2010, 06:32-execdir
является полезным, но не портативным. @all: В ударе 4 или zsh, можно сделатьfor x in **/datafile.dat; do (cd "$(dirname "$x")" && ~/a.py "$(basename "$x")"); done
– Gilles 'SO- stop being evil' 06.11.2010, 15:16