Научете Linux

Как рекурсивно да намерите и изброите файловете по дата в Linux

Как рекурсивно да намерите и изброите файловете по дата в Linux

Основната причина, поради която повечето потребители на операционната система избират Linux пред другите операционни системи, е свободата да се изследва. С Linux сте обвързани с някои слабо свързани правила на операционната система. ОС предварително дефинира някои променливи стандартни правила, които да се използват в нейната среда.

След като свалите палтото за начинаещи, можете да излезете от тези правила по подразбиране и да създадете свои собствени. Под Linux операционната система е вашият лоялен служител, а вие господарят.

Този случай не е жизнеспособен в други дистрибуции на операционна система, тъй като има твърде много абстракции. Операционните системи тук са по-скоро ваш асистент. Никога не можете да имате повече мощност от операционната система, както в случая с Linux. Докато продължавате да изграждате потребителското си изживяване под Linux OS среда, любопитството ви към OS ще расте всеки ден. Винаги ще искате да знаете какво се крие тук и какво повече можете да направите под неговия чадър.

Работа с файлове и директории в Linux

Перфектен сценарий е вашето ежедневно взаимодействие с файлове и папки в средата на операционната система Linux. Използването на файловата система Linux OS е много повече от просто създаване, редактиране, модифициране и изтриване на потребителските файлови системи и папки. Всяко действие, свързано с потребителските файлове и папки / директории в Linux среда, оставя потребителски отпечатък или пръстов отпечатък. Това е като да влезеш в стая, за да докоснеш и да си размениш предмети.

Ако хазяин или гледач на Linux управлява тази стая, в която сте влезли, той ще знае точно какво сте направили и кои елементи сте докоснали или сменили. Linux има полезни команди, които да ни помогнат да постигнем такива резултати. Ще знаете какво се е случило с файловете и папките във вашата Linux OS и ще идентифицирате тези действия въз основа на това кога са се случили.

Накратко, когато се занимаваме с файлове и директории в среда на операционна система Linux, можем да изградим времева линия за събития, за да идентифицираме модификации на уязвими файлове чрез времеви марки, прикрепени към всяка модификация. Като предимство ще знаете дали модификацията е свързана със злонамерено съдържание чрез генерираните системни дневници.

Командите на Linux, които да се използват

Ще използваме няколко прости команди, които да ни помогнат да разберем обективираното значение на тази статия. Първо трябва да стартирате терминала си и да навигирате в системния път, за който знаете, че има много файлове и директории на папки. За да сте в безопасност и да не си играете с уязвимите системни файлове, можете да използвате директорията „Документи“, която обикновено е предварително дефинирана в операционната система Linux. Следващата команда трябва да ви отведе до тази директория „Документи“.

$ cd ~ / Документи

Това е популярна директория с много файлове и поддиректории. Друга директория, която да използвате за експеримента с тази статия, е директорията „Изтегляния“. Това е едно място, където никога няма да пропуснете изтеглени файлове и други поддиректории.

$ cd ~ / Изтегляния

За да започнем този експеримент, се нуждаем от някои относими извадки от нашия терминал. Ще въведем команден низ на нашия терминал, който ще ни позволи да изброим активни файлове и свързаните с тях поддиректории. Също така, всеки елемент от резултата от тази команда ще бъде свързан с времева марка, която сочи към последния опит за модификация на свързания файл, директория или поддиректория.

Командният низ, който трябва да се използва, е както следва:

$ намери . -printf '% T @% t% p \ n' | сортиране -k 1 -n | изрежете -d "-f2-

Екранната снимка по-долу е изход за използване на горния команден низ.

примерни резултати от използване на командата за търсене, сортиране и изрязване

От аналитична гледна точка, долният екран на изхода на командата представлява наскоро модифицираните елементи в родителската ви работна директория. Изходният списък може да бъде дълъг, в зависимост от файловете и папките, които имате на вашето устройство. Превъртането нагоре по изходния терминал разкрива по-стари файлове и модификации на папки. В обобщение, имаме изход, който класира най-старите файлове и модификации на папки към най-новите модификации.

Както забелязахте, горният команден низ, който сте поставили на вашия терминал, има три важни командни аргумента. Трябва да разберем какво прави всеки от тях.

намирам

Командата „намиране“ е първата, която се изпълнява от командния низ. Единствената му цел е рекурсивно изброяване на активните файлове и директории в родителската работна директория. „.Аргумент, който следва аргумента „намери“, насочва тази команда към текущата работна директория. Ако не сте сигурни в директорията, в която се намирате; можете да въведете командата “pwd” на вашия терминал. Той ще отпечата пътя до директорията, в която се намирате в момента.

„.Аргументът се превежда като изход на командата „pwd“. Улеснява намирането на файлове и директории на текущата ви работна директория. Следващият аргумент на командния низ е “-printf”. Това е флаг за аргумент за печат. Той отпечатва файловете и директориите в текущата работна директория в определен формат. Форматът, който отнема, се определя от аргумента „% T @% t% p \ n“. Това е командният аргумент, който веднага го следва.

Частта „% T @“ на този аргумент представлява времето на епохата. По дефиниция времето на епохата или епохата на Unix е клеймото за време на 1 януари 1970 г. Представен е като 00:00:00 UTC. Изходът на вашия терминал приема този формат за представяне на датите на модификация, свързани с изброените файлове и директории. Частта от аргумента '% t' сега отнема формата на времето на епохата, за да покаже най-новата времева марка за модификация, свързана с изброените файлове и директории.

В зависимост от дистрибуцията или вкуса на Linux, изходът на терминала може да не показва времето на епохата, свързано с изходния списък на модифицираните файлове. Това изявление е доказателство за резултата от моя край.

Частта от аргумента '% p' ​​извежда имената на показаните файлове в текущата работна директория. И накрая, частта от аргумента '/ n' служи за целта на символ на нов ред. След всеки последователен списък на модифициран файл, този символ на нов ред взема курсора на дисплея и прескача следващия дисплей на нов ред на терминалния екран. Улеснява ни да свързваме всеки показан файл по различен начин.

Друг подход за работа с по-рано посочения команден низ е замяната на частта „% t“ на аргумента „% T @% t% p \ n“ с „% c“. Полученият команден низ трябва да изглежда подобно на следния:

$ намери . -printf '% T @% c% p \ n' | сортиране -k 1 -n | изрежете -d "-f2-

Резултатът от изпълнението на този команден низ трябва да даде резултат, подобен на следващия екран.

промяна на аргументи на командата за търсене на файл рекурсивно

Наблюдаването на горната екранна снимка разкрива следното наблюдение. Изходният списък с файлове в текущата работна директория се показва с „време за последна промяна на състоянието“ вместо „време за модификация“. Това е ефектът от замяната на „% c“ с „% t“ в „% T @% t% p \ n“. Тази последна команда отпечатва промени в разрешенията, свързани със списъка с изведени файлове. Съдържанието на файловете може да не се промени, но свързаните с тях метаданни го правят.

На този етап изходните резултати не следват никакъв хронологичен ред, тъй като тепърва ще се обръщаме към командата за сортиране. Първо се отпечатва клеймото за модификация, последвано от името на свързания файл.

Вид

Този команден аргумент има три параметъра, а именно '-k', '1' и 'n'. Командата за сортиране е отговорна за реда, в който изходът на списъка с файлове се появява на нашите екрани. В този случай първо се отпечатва датата на модификация, последвана от пътя на файла към модифицирания файл или директория. Частта '-k' от този команден аргумент показва началната позиция за започване на процеса на сортиране.

Частта '-k' на аргумента за командване на сортиране съдържа въпрос, отговорен от частта '1' на същия аргумент. В този случай процесът на сортиране започва от първата колона, както е посочено с „1“. Аргументът команда за сортиране е отговорен и за най-новия модифициран файл в долната част на списъка и най-стария в горната част. Частта '-n' на аргумента е отговорна за числовото време с точност до десетичните точки.

Ако използвате '-nr' вместо '-n', изходът на командния низ ще има ново модифицираните файлове и директории в горната част на изхода на терминала, а старите модификации на файла в долната част. Той обръща реда на сортиране на изхода на терминала.

Разрез

Основната цел на аргумента на командата “cut” е да организира изхода на разпечатката на терминала по подреден начин. Опциите '-d' и "на този команден аргумент се комбинират, за да генерират празни пространства и след това отрязват разпечатката с подробности за съдържанието на файла, която може да се опита да наследи тези бели интервали.

С този прост команден низ можете да рекурсивно отпечатвате файловете в текущата работна директория, като всеки изход свързва споменатите файлове с датите на модификацията им.

Алтернативни опции за команди

Може да спорите, че командата “ls -lrt” перфектно изброява всички файлове в активна пътека на директорията на вашата операционна система Linux, от най-старата до модифицирана до най-новата. От друга страна, тази команда не отчита съдържанието на файла, съществуващо в подпапки. Ако изброяването на поддиректории не е вашата цел, можете да добавите аргумента “-type f” към командния низ. Обмислете следната модификация на командата.

$ намери . -въведете f -printf '% T @% t% p \ n' | сортиране -k 1 -n | изрежете -d "-f2-

Използването на аргумента на командата “-type d” ще има ефект, противоположен на горната команда. Вашият терминал ще извежда само модифицирани директории от най-старата до най-новата. Помислете за неговото значение, както следва:

$ намери . -напишете d -printf '% T @% t% p \ n' | сортиране -k 1 -n | изрежете -d "-f2-

Заключителна бележка

Вече сте запознати с описанието на рекурсивно отпечатване на файлове и директории в текущата работна директория с допълнителни знания за това кога са били последно модифицирани въз основа на свързаните с тях времеви марки.

От това знание имате способността да съставяте времева линия от събития, която хронологично разкрива реда на модифициране на файлове и директории, заедно с пътя до тяхното място за съхранение.

Как да инсталирате и играете Doom на Linux
Въведение в Doom Серията Doom възниква през 90-те години след пускането на оригиналния Doom. Това беше незабавен хит и от този момент нататък серията ...
Vulkan за потребители на Linux
С всяко ново поколение графични карти виждаме, че разработчиците на игри преместват границите на графичната вярност и се приближават една крачка до фо...
OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...