LinuxForum.Fans
Тема

Нужна помощь в написании скрипта

Автор: k0rven 12 сообщений 2133 просмотров
#245449

Привет всем!
Нужна помощь опытных и бывалых

Условие:

Есть каталоги /home/vova/out/ и /home/goga/out/, нужен скрипт, котрый бы проверял каталог /home/vova/out/ на наличие в нем файлов (любых, скрытые не нужны) и перемещал бы их в /home/goga/out/. В дальнейшем этот скрипт планирется запускать cron-ом каждые 15 минут.
Спасибо всем заранее

#245454

Man find говорит, что нужна всего лишь одна строчка:

text
find /home/vova/out -type f -exec mv -a /home/vova/out /home/goga/out

Трудно в ман заглянуть?

#245458

я и не предполагал, что это можно сделать при помощи find, все думал конструкцией if else then и.т.д, а вы проверяли работает эта конструкция, т.к. у меня на debian не работает:

find: missing argument to `-exec'
и спасибо за внимание. :-)

#245461

да и зачем опция -a?

#245462
text

#!/bin/bash

DIR="/home/blabla" if [ -d $DIR ]; then #Проверка существования директории echo "test1" if [ -e $DIR ]; then # Проверка на наличие файлов echo "test2" fi else echo "Bad" fi

Вот Вам и через IF. :)

#245463
--=XliN=-- написал:
text

#!/bin/bash

DIR="/home/blabla" if [ -d $DIR ]; then #Проверка существования директории echo "test1" if [ -e $DIR ]; then # Проверка на наличие файлов echo "test2" fi else echo "Bad" fi

Вот Вам и через IF. :)

Спасибо за ответ конечно, но вы что-то напутали, мне нужно чтобы проверялось условие существования файлов в каталоге, если они там есть то перемещать их в другой каталог. А вас это условие не проверяется ну и соответственно не выполняется. Но все равно спасибо!

#245464
"k0rven" написал:
тобы проверялось условие существования файлов в каталоге

А это тогда что?

"k0rven" написал:
if [ -e $DIR ]; then

ЗЫ. Точно, не проверяет наличие файлов))

#245467
"k0rven" написал:
find: missing argument to `-exec'

должно быть как-то так:

text
find /home/vova/out -maxdepth 1 -type f -exec mv '{}' /home/goga/out \;
"k0rven" написал:
да и зачем опция -a?

видимо осталось от первого поста с cp.

"--=XliN=--" написал:
А это тогда что?

это какая-то бесполезная фигня... т.к. -d уже проверяет существование $DIR.
man test

#245468
"Fat-Zer" написал:
-d уже проверяет существование $DIR.

Это понятно, а как проверить существование в ней файлов?

#245470
"--=XliN=--" написал:
Это понятно, а как проверить существование в ней файлов?

find, ls
как-то так:

text
if [ -n "$(ls $DIR)" ]; then 
    echo существует; 
fi
#245509
text
find /home/vova/out \( -type f -o -type d \) -exec mv {} /home/goga/out \;

Так лучше? :)

#245663
k0rven написал:

В дальнейшем этот скрипт планирется запускать cron-ом каждые 15 минут.

Я бы посмотрел в сторону inotifywait. Очень удобно. Повесил этот монитор на нужный каталог (можно и с рекурсией), паси возникновение события на файловой системе, и, по этому событию, делай все, что тебе надо. И, главное, никаких 15-минутных задержек...

Войдите или зарегистрируйтесь, чтобы ответить.