Csak azt tudom, hogy ls -t
és ls -f
a fájlok és az alkönyvtárak különböző rendezését adja meg egy könyvtár alatt.
- Mi a különbség a fájl időbélyegzője, módosítási ideje és létrehozott ideje között?
- Hogyan szerezhetünk és változtathatunk meg ilyen típusú információkat parancsokkal?
- Az emberek milyen információi szerint “fájl” újabb “, mint a másik?
- az ilyen típusú információk megváltoztatása nem teszi különbségé a fájlt?
Például láttam, hogy valaki ezt írta:
Alapértelmezés szerint az rsync program csak azt vizsgálja, hogy a fájlok mérete és időbélyegzője eltér-e. Nem érdekli, melyik fájl újabb, ha más, akkor felülírja. Átadhatja a “–update” zászlót az rsync-nek, ami miatt a fájlok átugorják a célhelyet, ha azok újabbak, mint a forrásfájl, de csak addig, amíg azonos típusú fájlok. Ez azt jelenti, hogy ha például a forrásfájl egy normál fájl, a cél pedig egy symlink, akkor a célfájl felülírásra kerül, függetlenül az időbélyegtől.
Megjegyzendő, hogy a fájltípus itt csak rendes fájlt és szimlinket jelent, nem pedig a pdf, jpg, htm, txt stb. típust?
Megjegyzések
- Lásd még: askubuntu.com/questions/62492/…
Válasz
Háromféle “időbélyeg” van:
- Hozzáférés – az utolsó a fájl olvasásának ideje
- Módosítás – a fájl utolsó módosítása (a tartalom módosult)
- Módosítás – a fájl metaadatainak utolsó módosítása (pl. engedélyek)
Ezen információk megjelenítéséhez használhatja a stat
elemet, amely része a coreutils közül.
stat
megmutat még néhányat információk, például az eszköz, az inodes, a linkek stb.
Ne feledje, hogy ez a fajta információ nagymértékben függ a fájlrendszertől és a csatlakoztatási lehetőségektől. Például, ha egy partíciót a noatime
opcióval csatlakoztat, akkor nem írnak hozzáférési információkat.
Az időbélyegek megváltoztatásához egy segédprogram touch
. Van néhány érv annak eldöntésére, hogy melyik időbélyeget kell megváltoztatni (pl. -A a hozzáférési időhöz, -m a módosítási időhöz), és befolyásolni kell egy új adott időbélyeg elemzését. További részletekért lásd: man touch
.
touch
a cp -u
kombinációval hasznos lehet ( “csak akkor másolhat, ha a SOURCE fájl újabb, mint a célfájl, vagy ha a célfájl hiányzik” ) vagy üres jelölőfájlok létrehozásához.
Megjegyzések
Válasz
Az echox válasza érvényes, de információkat szeretnék hozzáadni a fájlhoz létrehozási idő.
Fájlrendszer támogatás
Egyes fájlrendszerek támogatják az inode további bejegyzését a létrehozás idejével (vagy születési idejével) kapcsolatban. Tudom, hogy a ext4 támogatja ezt a funkciót , valamint JFS és BTRFS .
Azonban a legtöbb eszközt és az API-t még nem frissítették, hogy elolvassák ezeket az extra információkat.Tehát annak ellenére, hogy ott lehet, nem érhető el.
Például az Ubuntu 12.04 LTS-en a következőket kaptam egy ma létrehozott fájlomhoz:
$ echo Just another test > /tmp/mytest $ sleep 3 $ touch /tmp/mytest $ sleep 2 $ cat /tmp/mytest > /dev/null $ stat /tmp/mytest [...] Access: 2012-06-05 13:33:44.279774711 +0200 Modify: 2012-06-05 13:33:34.611893317 +0200 Change: 2012-06-05 13:33:34.611893317 +0200 Birth: - $ sudo debugfs -R "stat /tmp/mytest" /dev/sda1 [...] ctime: 0x4fcdee8e:91e30114 -- Tue Jun 5 13:33:34 2012 atime: 0x4fcdee98:42b417dc -- Tue Jun 5 13:33:44 2012 mtime: 0x4fcdee8e:91e30114 -- Tue Jun 5 13:33:34 2012 crtime: 0x4fcdee46:01258f1c -- Tue Jun 5 13:32:22 2012 [...]
Láthatja, hogy az újabb stat függvénynek születési mezője van, bár a kimenet helytelennek tűnik. És a debugfs-en keresztül megszerezhetjük az információkat (crtime as I “m az ext4 fájlrendszeren).
statx támogatás
A Kernel 4.11 óta új statx rendszerhívás van , az Y2038 vagy a hálózat jobb támogatása mellett fájlrendszereket, ez is hoz néhány extra funkciót, például a btime
vagy a születési idő (létrehozási idő) hozzáférést. Az ext4 támogatásának ugyanabban a kernel 4.11-es verzióban kell lennie.
A későbbi Kernel-kiadásokban voltak javítások az új syscall támogatásához: pl. BTRFS és F2FS a 4.13-as rendszermagban, az SMB3 a 4.14-ben, a GFS2 a 4.15-ben, az NFS a 4.16-ban stb. >
Phoronix hírek a glibc statx támogatásáról ). Tehát hamarosan számíthatunk ennek a szolgáltatásnak a támogatására a felhasználói térben.
Megjegyzések
- Tudja, hogy a btime érintetlen marad-e, amikor a Windows fájljai (Creation idő) az ext4-re kerülnek, és fordítva, mint például az mtime? Ha a Linux alatt érted, amikor egy fájlt másolsz az NTFS-ből az ext4-be, akkor az NTFS illesztőprogramban kell keresni, ha az támogatja a létrehozási időt. Ha a Windows alatt érted, akkor a Windows ext4 illesztőprogramját kell keresni.
ls -l
oldalról lát. A fájltípus pedig a fájl vagy a symlink (vagy más típusú fájlok, például könyvtárak vagy eszközök) fájlra vonatkozik. Nem milyen a fájlban található adatok típusa (szöveg vs. jpeg stb.).