Linux-BG
Начало
Помощ
Търси
Календар
Вход
Регистрирай
Добре дошъл/дошла,
Гост
. Моля,
въведи своето потребителско име
или
се регистрирай
.
Влез с потребителско име, парола и продължителност на сесията
Linux за българи: Форуми
>
Linux секция за начинаещи
>
Настройка на програми
>
проверка за по-нови файлове от скрипт?
Страници: [
1
]
Надолу
« назад
напред »
Изпечатай
Автор
Тема: проверка за по-нови файлове от скрипт? (Прочетена 1215 пъти)
mars
Напреднали
Публикации: 46
проверка за по-нови файлове от скрипт?
«
-:
Nov 13, 2007, 14:48 »
Целта ми е да мога в баш скрипт да направя:
if (dir1 contains file newer than 19:30)
do something
Как може да стане това?
Активен
VladSun
Напреднали
Публикации: 2166
проверка за по-нови файлове от скрипт?
«
Отговор #1 -:
Nov 13, 2007, 16:24 »
man find
по-специално:
--newer и --exec параметрите
Активен
KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират
Nikolavp
Напреднали
Публикации: 408
проверка за по-нови файлове от скрипт?
«
Отговор #2 -:
Nov 13, 2007, 16:25 »
Цитат
(mars @ Ноември 13 2007,15:48)
Целта ми е да мога в баш скрипт да направя:
if (dir1 contains file newer than 19:30)
do something
Как може да стане това?
Хмм малко грозно, ма все пак да схванеш идеята...
Примерен код
direktokriq=""
for file in $direktoriq;do
if [[ 19:30 < $(ls -l "${file}" | awk '{print $7}') ]];then
echo "The file is newer"
fi
done
Кода отгоре изобщо не е красив и сигурно има по добър начин вместо да се прави цикъл, ще помоля някого с повече знания да се обади. Също тази имплементация няма да работи ако файла от вчера от часовете след 19:30 бъде проверен
'>. Може би има някоя опция на финд също...
Едит: Щом Vladsun казва значи има
'>
Активен
http://blog-nikolavp.rhcloud.com
- простотиите, с които се занимавам в свободното време
Hapkoc
Напреднали
Публикации: 2117
проверка за по-нови файлове от скрипт?
«
Отговор #3 -:
Nov 13, 2007, 16:44 »
Nikolavp, не се обиждай, но скрипта ти е съвсем грешен :)
Оставям настрана признанието ти, че не е красив:
1. for file in $direktoria, когато direktoria е "" е на практика празен цикъл
2. < се ползва за пренасочване на входа на команда
3. за сравнение се ползват -eq, -ne, -gt, -lt, etc. за дати/часове обаче надали ще сработят
Активен
Nikolavp
Напреднали
Публикации: 408
проверка за по-нови файлове от скрипт?
«
Отговор #4 -:
Nov 13, 2007, 16:55 »
Цитат
(Hapkoc @ Ноември 13 2007,17:44)
Nikolavp, не се обиждай, но скрипта ти е съвсем грешен
'>
Оставям настрана признанието ти, че не е красив:
1. for file in $direktoria, когато direktoria е "" е на практика празен цикъл
2. < се ползва за пренасочване на входа на команда
3. за сравнение се ползват -eq, -ne, -gt, -lt, etc. за дати/часове обаче надали ще сработят
1. Оставих го празно, той да си го попълни
'>
2. < се ползва на принципа на -lt само че ограден в [[]] работи
3. Да работи
'>
Активен
http://blog-nikolavp.rhcloud.com
- простотиите, с които се занимавам в свободното време
Hapkoc
Напреднали
Публикации: 2117
проверка за по-нови файлове от скрипт?
«
Отговор #5 -:
Nov 13, 2007, 17:20 »
Брях :)
Извинявам се благопочтително. Благодаря за информацията, нещо ново да науча ми е приятно.
Активен
mars
Напреднали
Публикации: 46
проверка за по-нови файлове от скрипт?
«
Отговор #6 -:
Nov 13, 2007, 17:52 »
Цитат
(VladSun @ Ноември 13 2007,17:24)
man find
по-специално:
--newer и --exec параметрите
find би ми свършило чудесна работа. Нещо като:
find -cmin -<някаква вярна стойност за минути> . Само имам проблем да проверя в изхода дали има поне един файл. Как може да стане това?
Между другото винаги в резултата има поне <.> директорията а това не е което ми трябва.
Активен
Nikolavp
Напреднали
Публикации: 408
проверка за по-нови файлове от скрипт?
«
Отговор #7 -:
Nov 13, 2007, 18:12 »
Цитат
(mars @ Ноември 13 2007,18:52)
Цитат на: VladSun,Ноември 13 2007,17:24
man find
по-специално:
--newer и --exec параметрите
find би ми свършило чудесна работа. Нещо като:
find -cmin -<някаква вярна стойност за минути> . Само имам проблем да проверя в изхода дали има поне един файл. Как може да стане това?
Между другото винаги в резултата има поне <.> директорията а това не е което ми трябва.
Примерен код
directory="път/до/директорията/"
if [[ find $directory -cmin -<някаква вярна стойност за минути> != "" ]];then
echo "You have a newer file"
fi
Забележка: Пътя до файла трябва да е нещо от рода на /home/files или иначе казано пълен път, защото ако скрипта ти е в /home и сложиш път files/ мисля, че пак ще ти изкара директорията, ако намери съответствие(по - сигурно е да е пълен пътя, когато ползваш find)
Активен
http://blog-nikolavp.rhcloud.com
- простотиите, с които се занимавам в свободното време
Страници: [
1
]
Нагоре
Изпечатай
« назад
напред »