Gyakran adódnak olyan helyzetek, amikor a nemrég létrehozott, új fájlokat kell megtekinteni az operációs rendszerben. Erre gyakran olyan rendszergazdának van szüksége, aki létrehozott egy konfigurációs fájlt, majd egyszerűen elfelejtette, hogy hová mentette azt. Az új fájlok keresésének szükségessége azért is felmerülhet, mert látni szeretné, hogy egy fájl nemrégiben változott-e vagy sem. Általában a helyzetek nagyon különbözőek lehetnek. A Linux operációs rendszer előnye, hogy hagyományosan többféle megoldást kínál egy adott probléma megoldására.
Az új fájlok keresésének legegyszerűbb és leggyakoribb módja Linuxban a Find
segédprogram. Az aktuális igényektől függően különböző paramétereket adhatunk át neki, például kereshetünk fájlokat csak egy bizonyos naptári hónap- vagy naptartományon belül, ennek részleteit lásd alább.
A fájlok könyvtárak és alkönyvtárak szerint jelennek meg, és rendezettek:
$ find /etc -type f -printf '%TY-%Tm-%Td %TT %p ' | sort –r
De mint látható, az eredmény elég látványos, az új fájlokat nem lehet felismerni a teljes listából. Ezért egy másik parancsot kell használnunk:
$ find /etc -type f -mmin -120
Így adjuk meg, hogy a rendszer csak az elmúlt órában létrehozott fájlokat keresse.
Ha az elmúlt két napra is szükség van, akkor a következő parancsot adjuk meg:
$ find /etc -type f -mtime -2
Néha nincs szükség arra, hogy a harmadik szintű alkönyvtárakba is belemerüljünk, ezért ennek a műveletnek a kizárásához a speciális maxdepth
opciót kell használnunk:
$ find /etc -maxdepth 3 -mtime -2 -type f
A Linux rendszerben az elmúlt hét napban létrehozott összes új fájlt láthatjuk, azzal a kivétellel, hogy az elmúlt három napot nem kell figyelembe venni:
$ find /etc -type f -mtime -7 ! -mtime -3
Ezek a parancsok kiadják a fájl elérési útvonalát, de az attribútumok megtekintéséhez a --exec
speciális opciót kell használnunk. Ezután az ls
segédprogrammal minden új fájl attribútumait ki fogjuk adni:
$ find /etc -type f -mmin -120 -exec ls -al {} ;
Ha ezt a parancsot túl zavarosnak és bonyolultnak találja, használhat egy másikat:
$ find /etc -type f -mmin -120 | xargs ls -l
Itt már egy másik segédprogramot, a xargs-t
használjuk. A find segédprogrammal egy adott fájlnál újabb fájlokat is kereshetünk. Hozzunk létre például egy referenciafájlt:
$ touch /tmp/test
Most keressük meg a gyökérkönyvtárban az összes újabb fájlt, amely utána jött létre:
$ find / -type f -newer /tmp/test
Térjünk át egy másik módszerre.
Az új fájlok keresésének ez a módszere sokkal egyszerűbb, mint az előző, így Linux kezdőknek is ajánlható. Az ls
paranccsal a könyvtárban lévő fájlokat a létrehozás dátuma szerint is rendezhetjük. Ehhez csak az ls parancsot kell végrehajtanunk:
$ ls -ltr
Lehet, hogy túl sok fájl van, ezért érdemes ezt a parancsot is futtatni:
$ ls -ltr | tail
Ez nem az összes módja az új fájlok keresésének, de elégségesek ahhoz, hogy gyorsan és hatékonyan elvégezzük a feladatot. Mint láthatjuk, az alapvető find és ls keresőparancsok még rugalmasabbá tehetők, ha a sort, tail
és grep
parancsokkal kombináljuk őket.