1 일 또는 24 시간 이전의 특정 디렉토리에 파일 나열


2

나는 내가 선택할 수있는 특정 디렉토리에서 24 시간 오래된 파일을 나열하려고하는 간단한 스크립트를 파이썬으로 작성하려고합니다.

찾기 및 사용 설명서를 읽었습니다.

찾아라. - 시간 1 & gt; log.dat

그러나 log.dat에있는 파일 목록을 얻으려면 해당 목록의 경로 정보도 얻습니다.

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

디렉토리를 제외하고 파일 목록 만 가져 오는 방법이 있습니까? 인사말, Umut

답변:


1

찾을 '-type of'플래그를 추가하십시오.

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

(그만큼 -a 'and'입니다. - 기본 연결입니다.하지만 나중에 어떤 점에서 기본값이 변경 될 경우에 대비하고 싶습니다.)


1

이후 당신이 파이썬 일을하고있다, 내가 사용하는 것입니다 :

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 프로세스 내부에서 모든 작업을 수행하는 것과 달리 새 프로세스를 생성하는 데 소요되는 추가 오버 헤드입니다.


스크립트를위한 Thx
Umut Tabak
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.