файлы списка в определенных каталогах, более старых, чем 1 день или 24 часа

Я пытаюсь записать простое обратно сценарий в Python, где я пытаюсь перечислить файлы, которые составляют 24 часа, старые в определенных каталогах, которые я выбрал бы.

Я прочитал руководство находки и использовал

найти.-mtime 1> log.dat

для получения списка файлов в log.dat однако, я также получаю информацию пути в том списке как таковом

./hpc06MatlabCodes/2011/Apr/3dBoxModel
./hpc06MatlabCodes/2011/Apr/3dBoxModel/vfluidIrca10.dat./hpc06MatlabCodes/2011/Apr/3dBoxModel/vLRecoveredSystem.mat

есть ли способ исключить каталоги и только получить список файлов. Greetz, Umut

2
задан 07.04.2011, 18:13

2 ответа

Добавьте '-тип f' флаг для нахождения:

$ find . -type f -a -mtime 1 > log.dat

( -a 'и' - это - соединение по умолчанию, но мне нравится указывать его в случае, если значение по умолчанию изменяется в какой-то момент в будущем.)

1
ответ дан 09.01.2020, 03:08

Так как Вы делаете, это - Python, я использовал бы:

def get_old_files(topdir, howold=24*3600):
    import os, time
    now = time.time()
    filelist = []
    def traverse_links(filename):
        if not os.path.islink(filename):
            return filename
        return traverse_links(os.path.normpath(
                    os.path.join(os.path.dirname(filename), os.readlink(filename)))))
    for dirpath, dirnames, filenames in os.walk(topdir):
        for name in [traverse_links(os.path.join(dirpath, f)) for f in filenames]:
            try:
                if os.path.isfile(name) and now - os.path.getmtime(name) > howold:
                    filelist.append(name)
            except OSError:
                pass # ignore bad symlinks
    return filelist

Это должно сделать то, чего Вы желаете, Вы могли также добавить дополнительный аргумент, который сократит каталоги. Преимущество использования этого по вызову find дополнительные издержки, связанные с порождением нового процесса в противоположность выполнению всего этого в процессе.

1
ответ дан 09.01.2020, 03:08

Теги

Похожие вопросы