Pertanyaan Buat daftar semua file yang baru saja diubah (rekursif)


Jadi, saya ingin menampilkan (via ls misalnya) semua file, yang diubah dalam tujuh hari terakhir. Jika saya berada di folder docroot saya, seharusnya bisa terlihat "lebih dalam".

Sebagai contoh:

File        Last changed
docroot
|- myfile1  30.11.2015
|- myfile2  10.11.2015
|- MySub
   |-sub1   30.11.2015
   |-sub2   10.11.2015

Sehingga ls (atau apa pun yang cocok) harus menghasilkan myfile1 dan (jika mungkin) MySub/sub1.

Apakah ini bisa dilakukan dengan satu perintah?


14
2017-11-30 09:17


asal




Jawaban:


Tentu saja. Dari direktori yang Anda lakukan:

find . -type f -mtime -7 -exec ls -l {} \; 

Tambahkan pengalihan ke sana (alias > results.txt untuk menyimpannya ke file itu).

  • type f hanya file dan bukan direktori
  • mtime -7 7 hari yang lalu hingga sekarang (+7 akan 'lebih tua dari 7 hari')
  • dan kemudian mengumpannya ls untuk menunjukkan daftar panjang

Anda bisa bermain dengan ls -l bagian juga:

find . -type f -mtime -7 -exec ls -Rl --time-style=long-iso {} \; 
find . -type f -mtime -7 -exec ls -R  --time-style=long-iso {} \; 

akan menampilkan pohon seperti metode dengan direktori di antara file dalam daftar panjang (1) atau daftar pendek (2).


26
2017-11-30 09:22



find punya ls pilihan sehingga Anda bisa melakukannya find . -type f -mtime -7 -ls - heemayl
Tentu tapi ini membuatnya sedikit lebih umum (saya menggunakan metode ini untuk menemukan file yang saya butuhkan untuk -remove- dan dapat mengubah perintah itu untuk melakukannya :)) - Rinzwind
Juga lebih tepat digunakan find ... -exec ls -l {} + yang mengeksekusi ls -l jauh lebih efisien - lebih sedikit kali dengan beberapa parameter. Ini adalah opsi standar find ditentukan oleh POSIX. - pabouk
menyelamatkan saya 2 jam, terima kasih sobat - Krunal Limbad


Dengan zsh:

ls -l **/*(.m-7)
  • **/* akan mencari file secara rekursif mulai dari direktori saat ini

  • (.m-7) adalah kualifikasi glob mana . menunjukkan file biasa, m-7 menunjukkan file yang dimodifikasi dalam 7 hari terakhir


4
2017-11-30 09:31





Bukan apa yang diminta ... tapi lebih mudah diingat ...

ls -alRt docroot

atau

ls -alRt /path/to/top/level/directory

1
2018-02-11 01:06





7 hari itu 60 detik * 60 menit * 24 jam * 7 hari  = 604800 detik

Cari tahu tanggal sekarang dalam hitungan detik (Unix jaman dulu):

$ date +%s
1448876323

Kurangkan 7 hari dalam detik:

expr $(date +%s) - 604800
1448271548

Sekarang ambil stat komando dan statistik cetak untuk semua file dalam format "nama + waktu dalam detik" dan gunakan awk untuk memotong file-file yang waktu modifikasinya lebih besar dari tanggal yang kami kalkulasikan

$ stat --printf="%n %Y\n" $HOME/* | awk '$2 > 1448271265 {print $0}'
/home/xieerqi/1448428697574.png 1448429613
/home/xieerqi/1448763343273.png 1448763478
/home/xieerqi/1510DRIVE 1448352453
/home/xieerqi/addRemoveDistribution 1448666843
/home/xieerqi/add-update.awk 1448716356
/home/xieerqi/add-update.sh 1448625092

Khususnya menarik 3 file terakhir, karena saya tahu saya sedang mengerjakannya kurang dari 7 hari yang lalu. Jadi saya tahu itu berhasil


0
2017-11-30 09:41



Perhatikan bahwa alih-alih awk '$2 > 1448271265 {print $0}' Anda bisa langsung mengatakannya awk '$2 > 1448271265'. Pada kondisi yang benar, awk mencetak baris saat ini sebagai tindakan default. - fedorqui


Perintah berikut bekerja mimpi di Mac OSX - mungkin juga di ubuntu ...

find . -type f -mtime -7 -exec stat -lt "%Y-%m-%d %H:%M:%S" {} \; | cut -d\  -f6- | sort -r

Ini menemukan file dalam pohon direktori saat ini yang telah dimodifikasi dalam 7 hari terakhir, menampilkan tanggal modifikasi + waktu dan jalur, diurutkan terbaru terlebih dahulu.

Contoh keluaran:

2018-02-21 22:06:30 ./fmxmlsnippet.xml
2018-02-19 12:56:01 ./diff.html
2018-02-19 12:44:37 ./temp/iDDR/XMSC_fmxmlsnippet.xml
2018-02-18 22:04:05 ./temp/iDDR/XMFD_fmxmlsnippet.xml
2018-02-15 10:18:27 ./xml/iDDR/XML2_fmxmlsnippet.xml
2018-02-15 10:13:29 ./xsl/fmxmlsnippet/XML2_fmCM_AnalyseLayout.xsl
2018-02-15 10:11:36 ./xsl/.DS_Store
2018-02-15 10:10:51 ./xsl/_inc/inc.XML2_fmCM_ReportReferencesToExternalFiles.xsl
2018-02-15 10:10:09 ./xsl/_inc/.DS_Store
2018-02-15 10:07:35 ./xsl/fmxmlsnippet/XML2_fmCM_AnalyseLayout-NoAnchors.xsl
2018-02-15 10:07:35 ./xsl/_inc/inc.XML2_fmCM_AnalyseLayout.xsl

Saya akan berterima kasih atas segala umpan balik dari pengguna ubuntu.


0
2018-02-21 21:53