daftar file dalam direktori tertentu yang lebih lama dari 1 hari atau 24 jam


2

Saya mencoba untuk menulis skrip cadangan sederhana dengan python di mana saya mencoba membuat daftar file yang berumur 24 jam di direktori tertentu yang akan saya pilih.

Saya membaca manual menemukan dan menggunakan

temukan. -minggu 1 & gt; log.dat

untuk mendapatkan daftar file di log.dat namun saya juga mendapatkan informasi jalur dalam daftar itu

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

apakah ada cara untuk mengecualikan direktori dan hanya mendapatkan daftar file. Greetz, Umut

Jawaban:


1

Tambahkan bendera '-type of' untuk menemukan:

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

(itu -a adalah 'dan' - itu adalah konjungsi default tetapi saya ingin menentukannya jika default berubah di beberapa titik di masa depan.)


1

Karena Anda melakukan ini adalah python, saya akan menggunakan:

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

Ini harus melakukan apa yang Anda inginkan, Anda juga bisa menambahkan argumen opsional yang akan membatasi direktori. Keuntungan menggunakan ini daripada menelepon find adalah overhead tambahan yang terlibat dengan menelurkan proses baru sebagai lawan melakukan semuanya di dalam proses.


Terima kasih untuk skripnya
Umut Tabak
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.