2015-06-05 4 views
-4

Мне нужно написать сценарий, который перемещает все папки в заданном родительском каталоге, которые изменяются по истечении заданного времени. Я хочу использовать bash или Python.переместить все папки, измененные после <time>, в новую папку

так что это должно быть что-то вроде.

forall ${DIR} in ${PARENT_DIR} 
If ${DIR} is modified after ${TIME} 
move ${DIR} to ${NEW_DIR} 

Он должен проверять изменение каталогов каждые 15 минут и перемещать все созданные каталоги.

Спасибо за помощь

+0

Я думаю, вы должны использовать Баш. Проверьте команду «найти», особенно клавиши «-mtime» и «-exec». Вы даже не должны использовать цикл для него. – wisp

+0

С чем вы столкнулись? –

ответ

1
import os 
from shutil import move 
from time import time 

def mins_since_mod(fname): 
    """Return time from last modification in minutes""" 
    return (time() - os.path.getmtime(fname))/60 

PARENT_DIR = '/some/directory' 
MOVE_DIR = '/where/to/move' 

# Loop over files in PARENT_DIR 
for fname in os.listdir(PARENT_DIR): 
    # If the file is a directory and was modified in last 15 minutes 
    if os.path.isdir(fname) and mins_since_mod(fname) < 15: 
     move(fname, MOVE_DIR) # move it to a new location