Често има ситуации, в които се налага да видите наскоро създадени, нови файлове в операционната система. Това често е необходимо на системен администратор, който е създал конфигурационен файл и след това просто е забравил къде е бил записан. Също така, необходимостта от търсене на нови файлове може да възникне, защото трябва да видите дали даден файл се е променил наскоро или не. Като цяло ситуациите могат да бъдат много различни. Предимството на операционната система Linux е, че тя традиционно предоставя няколко начина за решаване на даден проблем.
Най-лесният и най-разпространен начин за намиране на нови файлове в Linux е помощната програма Find
. В зависимост от текущите ви нужди към нея се подават различни параметри, например можете да търсите файлове само в определен диапазон от календарни месеци или дни, вижте по-долу подробности за това как може да се направи това.
Файловете се показват в директории и поддиректории и се сортират:
$ find /etc -type f -printf '%TY-%Tm-%Td %TT %p ' | sort –r
Но както можете да видите, резултатът е доста впечатляващ, не е възможно да се разпознаят нови файлове от целия списък. Затова трябва да използваме друга команда:
$ find /etc -type f -mmin -120
Така указваме, че в системата трябва да се търсят само файлове, които са създадени през последния час.
Ако е необходимо да се обхванат последните два дни, тогава въведете следната команда:
$ find /etc -type f -mtime -2
Понякога не е необходимо да се задълбава в поддиректориите от трето ниво, затова, за да изключим това действие, трябва да използваме специалната опция maxdepth
:
$ find /etc -maxdepth 3 -mtime -2 -type f
Можем да видим всички нови файлове, създадени в системата Linux през последните седем дни, но с изключение на това, че последните три дни не трябва да се вземат под внимание:
$ find /etc -type f -mtime -7 ! -mtime -3
Тези команди извеждат пътя до файла, но за да видим атрибутите му, трябва да използваме специалната опция --exec
. След това ще изведем атрибутите на всеки нов файл, като използваме помощната програма ls
:
$ find /etc -type f -mmin -120 -exec ls -al {} ;
Ако тази команда ви се струва твърде объркваща и сложна, можете да използвате друга:
$ find /etc -type f -mmin -120 | xargs ls -l
Тук вече използваме друга помощна програма - xargs
. Помощната програма find също така ви позволява да намирате файлове, които са по-нови от даден файл. Например, нека създадем референтен файл:
$ touch /tmp/test
Сега намерете всички по-нови файлове в главната директория, които са създадени след него:
$ find / -type f -newer /tmp/test
Нека преминем към друг метод.
Този метод за търсене на нови файлове е много по-прост от предишния, затова може да се препоръча на начинаещите в Linux. Командата ls
може също така да подрежда файловете в дадена директория по дата на създаване. За да направим това, трябва само да изпълним ls:
$ ls -ltr
Възможно е да има твърде много файлове, затова е разумно да се изпълни и тази команда:
$ ls -ltr | tail
Това не са всички начини за намиране на нови файлове, но те са достатъчни, за да се свърши работата бързо и ефективно. Както виждате, основните команди за търсене find и ls могат да станат още по-гъвкави, когато се комбинират със sort, tail
и grep
.