Tartalomjegyzék
Munka fájlokkal
- Szerző: Sallai András
- Copyright © Sallai András, 2018, 2019
- Web: https://szit.hu
Fájlok keresése
A find parancs tesztjei:
-amin n | A fájl elérési ideje n perccel ezelőtt volt |
-anewer FAJL | A fájl elérési ideje újabb mint a FAJL állomány |
-atime n | A fájl elérési ideje régebbi mint n nap |
-cmin n | A fájl utolsó inode változása n perccel ezelőtt volt |
-newer FAJL | A fájl utolsó inode változása újabb mint a FAJL állomány |
-ctime n | A fájl utolsó inode változása régebbi mint n nap |
-empty | A fájl üres |
-executable | A fájl futtatható |
-false | Mindig sikertelen |
-fstype típus | A fájl megadott fájlrendszeren van (pl.: ext4) |
-gid n | A fájl csoportazonosítója n |
-group csoportnév | A fájl adott csoportba tartozik |
-ilname minta | Szimbolikus linkek keresése, nincs kis- és nagybetű érzékenység |
-iname minta | Fájlok keresése, kis- és nagybetű érzékenység nincs |
-inum n | Adott inode számú fájl keresése |
… |
Talált fájlokon parancs futtatása
find /utvonal -type d | xargs chmod g+s
find /utvonal -type d -exec chmod g+s {} \;
find /utvonal -type d -exec chmod 755 {} \;
find /utvonal -type f -exec chmod 644 {} \;
Időbélyegek állítása
Időbélyegek:
- atime – access time – utolsó hozzáférés ideje
- mtime – modify time – utolsó módosítás ideje
- ctime – change time – inode változás ideje
- crtime – create time – létrehozás ideje
Az elérési idő állítása:
touch -a -t 11041220
Létrehozási idő
A létrehozási idő tárolását nem tartalmazza a POSIX szabvány, azonban az ext4 fájlrendszerben már tárolásra kerül. A stat parancs viszont még nem képes olvasni azt, mivel a Linux kernel API jelenleg nem teszi hozzáférhetővé. Pedig a stat parancsban elvileg lekérdezhető:
stat -c '%w' fájl # ember számára olvasható formában stat -c '%W' fájl # unix idő szerint
A debugfs és a stat parancs kombinálásával viszont kinyerhető az adat ext4 fájlrendszer esetén.
crtime megjelenítésének lépései:
Kiderítjük a kívánt fájl inode számát:
$ ls -i vmi.txt
Megnézzük melyik fálrendszeren van:
$ df -T vmi.txt
A létrehozás idejének lekérdezése:
# debugfs -R 'stat <inode_number>' /dev/sda1
A kisebb-mint és nagyobb-mint jelek kötelező elemek.
De szűrhetünk is az kívánt sorra:
# debugfs -R 'stat <269383>' /dev/sda1 | grep crtime
Létrehozási időre bash script
xstat() { for target in "${@}"; do inode=$(ls -di "${target}" | cut -d ' ' -f 1) fs=$(df "${target}" | tail -2 | head -n 1 | awk '{print $1}') crtime=$(sudo debugfs -R 'stat <'"${inode}"'>' "${fs}" 2>/dev/null | grep -oP 'crtime.*--\s*\K.*') good_crtime=`echo ${crtime} | date "+%Y-%m-%d %H:%M"` echo -e "${good_crtime}\t${target}" done }
A kódot másoljuk be a ~/.bashrc vagy a ~/.profile állományba. Újabb bejelentkezés után használható.
Használat:
xstat *
A használathoz szükség van a felhasználó számára sudo jogra, a debugfs számára.
JSON fájlok
apt install jq
Egy fájl értelmezése:
jq '.' dolgozok.json [ { "az": 1, "nev": "Perke Béla", "kor": "32" }, { "az": 2, "nev": "Pink Boldizsár", "kor": "27" } ]
A jq parancs használható csővezetékkel:
cat dolgozok.json | jq '.' | less
Források
Program eredeti forráskódok: