Pelajari Linux

Cara menemukan dan membuat daftar file secara rekursif berdasarkan tanggal di Linux

Cara menemukan dan membuat daftar file secara rekursif berdasarkan tanggal di Linux

Alasan utama sebagian besar pengguna sistem operasi memilih Linux daripada sistem operasi lain adalah kebebasan untuk menjelajah. Dengan Linux, Anda terikat pada beberapa aturan sistem operasi yang digabungkan secara longgar. OS menetapkan beberapa aturan standar yang dapat diubah untuk digunakan dalam lingkungannya.

Setelah Anda melepaskan mantel pemula, Anda bisa keluar dari aturan default ini dan membuat sendiri. Di Linux, sistem operasi adalah pelayan setia Anda dan Anda tuannya.

Kasing ini tidak dapat digunakan di distribusi sistem operasi lain karena ada terlalu banyak abstraksi. Sistem operasi di sini lebih dari asisten Anda. Anda tidak akan pernah memiliki kekuatan lebih dari sistem operasi, seperti dengan kasus Linux. Saat Anda terus membangun pengalaman pengguna Anda di bawah lingkungan OS Linux, rasa ingin tahu OS Anda akan tumbuh setiap hari. Anda akan selalu ingin tahu apa yang tersembunyi di sini dan apa lagi yang dapat Anda lakukan di bawah payungnya.

Bekerja dengan file dan direktori di Linux

Skenario kasus yang sempurna adalah interaksi harian Anda dengan file dan folder di bawah lingkungan sistem operasi Linux. Ada lebih banyak hal dalam menggunakan sistem file OS Linux daripada hanya membuat, mengedit, memodifikasi, dan menghapus sistem file dan folder pengguna. Setiap tindakan yang terkait dengan file dan folder/direktori pengguna di lingkungan Linux meninggalkan jejak atau sidik jari pengguna. Ini seperti berjalan ke ruangan untuk menyentuh dan menukar barang.

Jika pemilik atau penjaga Linux mengelola ruangan yang Anda masuki ini, ia akan tahu persis apa yang Anda lakukan dan item mana yang Anda sentuh atau tukar. Linux memiliki perintah yang berguna untuk membantu kami mencapai hasil seperti itu. Anda akan tahu apa yang terjadi pada file dan folder di OS Linux Anda dan mengidentifikasi tindakan ini berdasarkan kapan itu terjadi.

Singkatnya, ketika berurusan dengan file dan direktori di bawah lingkungan sistem operasi Linux, kita dapat membuat timeline peristiwa untuk mengidentifikasi modifikasi file yang rentan melalui stempel waktu yang dilampirkan pada setiap modifikasi. Sebagai keuntungan, Anda akan tahu apakah modifikasi itu terkait dengan konten berbahaya melalui log sistem yang dihasilkan.

Perintah Linux untuk digunakan

Kami akan menyalurkan beberapa perintah sederhana untuk membantu kami memahami implikasi objektif dari bagian artikel ini. Anda harus terlebih dahulu meluncurkan terminal Anda dan menavigasi jalur sistem yang Anda tahu memiliki banyak direktori file dan folder folder. Agar aman dan tidak bermain-main dengan file sistem Anda yang rentan, Anda dapat menggunakan direktori "Dokumen" Anda yang biasanya telah ditentukan sebelumnya di sistem operasi Linux. Perintah berikut akan membawa Anda ke direktori "Dokumen" ini.

$ cd ~/Dokumen

Ini adalah direktori populer dengan banyak file dan sub-direktori. Direktori lain yang digunakan untuk percobaan artikel ini adalah direktori “Unduhan”. Ini adalah satu tempat Anda tidak akan pernah melewatkan file yang diunduh dan sub-direktori lainnya.

$ cd ~/Downloads

Untuk memulai percobaan ini, kami memerlukan beberapa keluaran sampel yang dapat dihubungkan dari terminal kami. Kami akan memasukkan string perintah di terminal kami yang memungkinkan kami untuk membuat daftar file aktif dan subdirektori terkaitnya. Juga, setiap elemen dari output yang dihasilkan dari perintah ini akan ditautkan dengan stempel waktu yang menunjuk ke upaya modifikasi terakhir pada file, direktori, atau subdirektori terkait.

String perintah yang digunakan adalah sebagai berikut:

$ temukan . -printf '%T@ %t %p\n' | urutkan -k 1 -n | potong -d"-f2-

Tangkapan layar di bawah ini adalah output untuk menggunakan string perintah di atas.

contoh output menggunakan perintah find, sort, and cut

Dari sudut pandang analitis, layar bawah dari output perintah mewakili item yang baru saja dimodifikasi di direktori kerja induk Anda. Daftar keluaran bisa panjang, tergantung pada file dan folder yang Anda miliki di mesin Anda. Menggulir ke atas pada terminal keluaran mengungkapkan file lama dan modifikasi folder. Singkatnya, kami memiliki output yang memberi peringkat modifikasi file dan folder tertua hingga modifikasi terbaru.

Seperti yang Anda perhatikan, string perintah di atas yang Anda tempel di terminal Anda memiliki tiga argumen perintah penting:. Kita perlu memahami apa yang mereka lakukan masing-masing.

Temukan

Perintah "find" adalah yang pertama dijalankan dari string perintah. Ini memiliki satu-satunya tujuan untuk secara rekursif mendaftar file dan direktori aktif di direktori kerja induk Anda your. ".” argumen yang mengikuti argumen “find” mengarahkan perintah ini ke direktori kerja saat ini. Jika Anda tidak yakin dengan direktori tempat Anda berada; Anda dapat memasukkan perintah "pwd" di terminal Anda. Ini akan mencetak jalur ke direktori tempat Anda berada saat ini.

".” argumen diterjemahkan sebagai output dari perintah “pwd”. Itu membuatnya lebih mudah untuk menemukan file dan direktori dari direktori kerja Anda saat ini. Argumen berikutnya pada string perintah adalah “-printf”. Ini adalah bendera untuk argumen cetak. Ini mencetak file dan direktori pada direktori kerja Anda saat ini dalam format tertentu. Format yang dibutuhkan ditentukan oleh argumen “%T@%t%p\n”. Ini adalah argumen perintah yang segera mengikutinya.

Bagian '%T@' dari argumen ini mewakili waktu epoch. Menurut definisi, waktu zaman atau zaman Unix adalah cap waktu pada 1 Januari 1970. Ini direpresentasikan sebagai 00:00:00 UTC. Output pada terminal Anda mengambil format ini untuk mewakili tanggal modifikasi yang terkait dengan file dan direktori yang terdaftar. Bagian '%t' dari argumen sekarang mengambil format waktu epoch untuk menampilkan stempel waktu modifikasi terbaru yang terkait dengan file dan direktori yang terdaftar.

Bergantung pada distro atau rasa Linux Anda, output terminal mungkin tidak menampilkan waktu epoch yang terkait dengan daftar output dari file yang dimodifikasi. Pernyataan ini adalah bukti output dari saya.

Bagian '%p' dari argumen menampilkan nama file yang ditampilkan pada direktori kerja saat ini current. Akhirnya, bagian '/ n' dari argumen berfungsi untuk karakter baris baru. Setelah setiap daftar berturut-turut dari file yang dimodifikasi, karakter baris baru ini mengambil kursor tampilan dan melompati tampilan file berikutnya ke baris baru di layar terminal. Itu memudahkan kami untuk mengaitkan setiap file yang ditampilkan secara berbeda.

Pendekatan lain untuk bekerja dengan string perintah yang dinyatakan sebelumnya adalah mengganti bagian '%t' dari argumen “%T@%t%p\n” dengan '%c'. String perintah yang dihasilkan akan terlihat seperti berikut:

$ temukan . -printf '%T@ %c %p\n' | urutkan -k 1 -n | potong -d"-f2-

Output dari menjalankan string perintah ini akan menghasilkan output yang mirip dengan tangkapan layar berikut.

mengubah argumen pada perintah find file secara rekursif

Mengamati tangkapan layar di atas dengan tajam mengungkapkan pengamatan berikut. Daftar keluaran file pada direktori kerja saat ini ditampilkan dengan "waktu perubahan status terakhir" alih-alih "waktu modifikasi". Ini adalah efek dari mengganti '%c' dengan '%t' di “%T@%t%p\n”. Perintah terakhir ini mencetak perubahan izin yang terkait dengan daftar file yang dikeluarkan. Konten file mungkin tidak berubah, tetapi metadata yang terkait dengannya berubah.

Pada tahap ini, hasil keluaran tidak mengikuti urutan kronologis karena kami belum membahas perintah pengurutan. Stempel waktu modifikasi pertama kali dicetak, diikuti dengan nama file terkait.

Menyortir

Argumen perintah ini memiliki tiga parameter, yaitu '-k', '1', dan 'n'. Perintah sort bertanggung jawab atas urutan di mana output daftar file muncul di layar kita. Dalam hal ini, tanggal modifikasi dicetak terlebih dahulu, diikuti oleh jalur file ke file atau direktori yang dimodifikasi. Bagian '-k' dari argumen perintah ini menunjukkan posisi awal untuk memulai proses penyortiran.

Bagian '-k' dari argumen perintah sortir memiliki pertanyaan yang dijawab oleh bagian '1' dari argumen yang sama. Dalam hal ini, proses pengurutan dimulai dari kolom pertama yang ditunjukkan dengan '1'. Argumen perintah sort juga bertanggung jawab untuk file yang dimodifikasi terbaru berada di bagian bawah daftar dan yang tertua di atas. Bagian '-n' dari argumen bertanggung jawab atas numerik waktu dengan presisi titik desimal.

Jika Anda menggunakan '-nr' alih-alih '-n', output dari string perintah akan memiliki file dan direktori yang baru dimodifikasi di atas output terminal dan modifikasi file lama di bagian bawah. Ini membalikkan urutan penyortiran output terminal.

Memotong

Tujuan utama dari argumen perintah "potong" adalah untuk mengatur output dari cetakan terminal kami dengan rapi. Opsi '-d' dan" dari argumen perintah ini digabungkan untuk menghasilkan spasi putih dan kemudian memotong cetakan detail konten file yang mungkin mencoba menggantikan spasi putih ini.

Dengan string perintah sederhana ini, Anda dapat mencetak file secara rekursif di direktori kerja Anda saat ini, dengan setiap output menautkan file tersebut ke tanggal modifikasinya.

Opsi perintah alternatif

Anda mungkin berpendapat bahwa perintah "ls -lrt" dengan sempurna mencantumkan semua file dalam jalur direktori aktif pada sistem operasi Linux Anda, dari yang terlama hingga yang terbaru. Di sisi lain, perintah ini tidak mempertimbangkan konten file yang ada di subfolder. Jika daftar subdirektori bukan tujuan Anda, Anda bisa menambahkan argumen "-type f" ke string perintah. Pertimbangkan modifikasi perintah berikut.

$ temukan . -ketik f -printf '%T@ %t %p\n' | urutkan -k 1 -n | potong -d"-f2-

Menggunakan argumen perintah "-type d" akan memiliki efek yang berlawanan dengan perintah di atas. Terminal Anda hanya akan menampilkan direktori yang dimodifikasi dari yang terlama hingga yang terbaru. Pertimbangkan implikasinya sebagai berikut:

$ temukan . -ketik d -printf '%T@ %t %p\n' | urutkan -k 1 -n | potong -d"-f2-

Catatan akhir

Anda sekarang terbiasa dengan panduan pencetakan file dan direktori secara rekursif di direktori kerja Anda saat ini dengan pengetahuan tambahan untuk mengetahui kapan terakhir diubah berdasarkan stempel waktu terkait.

Dari pengetahuan ini, Anda memiliki kemampuan untuk menyusun garis waktu peristiwa yang secara kronologis mengungkapkan urutan modifikasi file dan direktori bersama dengan jalur ke lokasi penyimpanannya.

OpenTTD vs Simutrans
Membuat simulasi transportasi Anda sendiri bisa menyenangkan, santai, dan sangat menarik. Itulah mengapa Anda perlu memastikan bahwa Anda mencoba game...
Tutorial OpenTTD
OpenTTD adalah salah satu game simulasi bisnis paling populer di luar sana. Dalam game ini, Anda perlu membuat bisnis transportasi yang luar biasa. Na...
SuperTuxKart untuk Linux
SuperTuxKart adalah judul hebat yang dirancang untuk memberi Anda pengalaman Mario Kart gratis di sistem Linux Anda. Ini cukup menantang dan menyenang...