Ответ Марка, похоже, немного не соответствует требованиям ОП.
Попробуйте использовать этот лайнер в командной строке вашего терминала. Он проще и, наверное, надежнее.
[ $(find /path/to/directory/. -maxdepth 1 -type f -name MAIN.TXT -daystart -mtime +1) ] \
&& printf "YES" > /full/path/to/directory/MAIN.TXT
Пояснение: сначала посмотрите на более крупные блоки одного вкладыша, а затем углубитесь в каждый блок.:
[ block1 ] && block2
[ block1 ]
(с пробелами! )— булев логический оператор, эквивалентный оператору test
, встроенному -в [ block1 ]
является ИСТИНА. Если он ничего не возвращает, как в ""
, то результат предыдущего теста — ЛОЖЬ. &&
в A && B
отражает тот факт, что B выполняется, если статус выхода A равен 0
или TRUE
. Таким образом, если [ block1 ]
выполняется как TRUE, то блок 2 также выполняется. $( )
. Это замена команды. Все, что находится внутри скобок, выполняется, и вывод заменяет команду. Вот почему это называется «заменой команды». regular file
MAIN.TXT
/path/to/directory/.
-maxdepth 1
)-mtime +1
)начиная с текущего времени(-daystart
). Без -daystart
ваш поиск будет искать файлы, измененные более 24 часов назад, но начиная отсчет назад с вчерашнего 0-часового времени . Для работы программного обеспечения потребуется определенный объем ОЗУ, а для эффективной работы потребуется определенный объем ЦП.
Виртуальной машине необходимо назначить правильный объем ОЗУ и ЦП в зависимости от того, какое программное обеспечение вы планируете использовать на ней. Некоторым программам требуется много процессора, но они могут обойтись небольшим объемом оперативной памяти, другим требуется много оперативной памяти, но им не нужно много процессора.
Вы должны иметь возможность менять оперативную память или ЦП, не влияя на другое. Между оперативной памятью и процессором на машине нет прямой пропорциональной зависимости.