Könyvtárak létrehozásának dátuma. Visszaállítás.

 ( kalvi | 2019. január 1., kedd - 13:08 )

Van egy könyvtár ami egy csomó alkönyvtárat tartalmaz.
Ha az alkönyvtárakhoz hozzáadok egy file-t vagy megváltoztatok egyet akkor a könyvtár dátuma is megváltozik.
Időnként szeretném visszaállítani a létrehozás dátumár, mert ha időrendben vannak könnyebb tájékozódnom.
mint/thunar
Van erre valamilyen program?
köszi

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

touch(1), de honnan fogod tudni az eredeti létrehozási dátumot? Az inode-ban atime és mtime van tárolva.

Monduk egyes fájlrendszereken van nem-POSIX létrehozási dátum (crtime, st_birthtime, stb.) de hogy az jó-e manapság még valamire?

Nekem Linux/ext4 kombóval a `stat -c %W` mindenre nullát mond.

Azt gondoltam, hogy ez el van rejtve valahol. Mint a képek exif adataiban.

Tuti neked kell valami meta adatbazist letrehozni, mert az fs felulvagja a sajatjat. Mondjuk inotify-al figyeled az o"s konyvtarat, es elmented a datumot, amikor letrejon, es cron-bol meg idonkent visszabillented.

-
First impressions of the new Cloud Native programming language Ballerina

Inode szám?:

$ ls -i vmi.txt

Melyik fájlrendszer?:

$ df -T vmi.txt

A létrehozás idejének lekérdezése:

# debugfs -R 'stat inode_number' /dev/sda1

ext4 esetén ott van a crtime-ban a létrehozási idő. Már csak a stat(1)-ot kellene megokosítani, hogy le bírja kérdezni. (Látszólag a stat(2) rendszerhívás és a struct stat sem ismeri az értéket.)

Szerintem a rendszerhívás nem csak látszólag nem ismeri.
A stat írója meg láthatóan már gondolt rá, de biztos
várja a megfelelő rendszerhívást. :)

Nem pont azt csinalja, amit szeretnel, de jo lehet: irtam egy programot, ami megkeresi az adott konyvtarban a legujabb file-t, es beallitja erre a konyvtar datumat. Gyakorlatilag ugyanaz, mint egy touch -r <legujabb_file_a_konyvtarban> <konyvtar>

Ha egy teljes konyvtarstrukturara szeretned alkalmazni, akkor a find es az xargs a te baratod:

find <konyvtar> -depth -type d -print0 | xargs -0r touchdir

Ez szuper!
Köszi