J'ai écrit un utilitaire pour descendre dans les sous-répertoires et extraire la date la plus récente d'une modification. fichier et ensuite utiliser cette date pour représenter le répertoire global des ancêtres.
#!/usr/bin/env python
import sys
def lsd(fname):
def lsdRec(fname):
from pathlib import Path
from operator import itemgetter
import os
fpath = Path(fname)
fs = list(fpath.glob('*'))
if not fs:
return []
else:
def getLast(lst):
x = lst[-1] if lst else [None,0]
return x
def getModified(fpath):
try:
return os.path.getmtime(str(fpath.resolve()))
except Exception as e:
print(f"Error on {fpath}: {e}")
return 0
fl = sorted([ getLast(lsdRec(f)) if f.is_dir()
else [f,getModified(f)] for f in fs],key=itemgetter(1))
return fl
rst = lsdRec(fname)
from datetime import datetime
outLst = ([ [ str(x[0])[len(str(fname))-1:],
datetime.fromtimestamp(x[1]).strftime('%Y-%m-%d %H:%M:%S')] for x in rst])
out = '\n'.join(['\t'.join([x[1],x[0]]) for x in outLst])
return out
if len(sys.argv) < 2:
print(f"sys.argv {sys.argv}")
print("""
Usage: lsd <directory>
Prints the files and subdirectories according to last modified date of contents
""")
sys.exit(1)
dir=sys.argv[1]
print(lsd(dir))
La sortie montre le fichier dans chaque sous-répertoire qui a la date de modification la plus récente . La sortie montre donc le chemin d'accès complet, y compris les sous-répertoires. Cela me plaît !
2022-03-07 16:40:48 x/hercl-0.3.2/setup.cfg
2022-04-20 16:15:25 x/y/z/zz/thereThere