30 dakikalık bir dosya bulun


12

30 dakikalık dosyayı nasıl bulabilirim /bin/ksh?


4
Şunu mu demek istediniz: "içeriği 30 dakika önce değişti" veya "30 dakika önce oluşturulana kadar mevcut değildi"? Ayrıca, hangi işletim sistemini kullanıyorsunuz? Farklı işletim sistemleri farklı sürümleriyle gelir find.
Mark Plotnick

@ Mark Plotnick 30 dakika eski olan dosyayı bulmak istiyorum
Aravind

Sanırım 30 dakika önce yaratıldığı anlamına geliyor . Sanki biri X yaşındaymış gibi, X zaman önce doğmuştu.
erik

Yanıtlar:


15

Linux'ta, bir dosyanın oluşturulma zamanının bir izi yoktur. Yalnızca şunlara erişebilirsiniz:

  • içeriğin son değiştirme zamanı (bir oluşturma, elbette bir değişiklik olarak sayılır) mtime,
  • son erişim zamanı atime,
  • meta verilerin son değişiklik zamanı ctime,.

Bu sürelere göre test edilen dosyaları aramak istiyorsanız, find( man find) size yardımcı olabilir.

Geçerli dizininizde ve alt dizinlerinde tam olarak 30 dakika önce erişilen bir dosyayı bulmak için bu yolu kullanırsınız:

find -amin 30

Genellikle, tam bir dakika vermek zor olabileceğinden bir aralık kullanmak istersiniz:

find -amin +25 -amin -35

Bu işlem 25 dakikadan daha uzun ama 35 dakikadan daha kısa bir süre önce erişilen dosyaları bulur.

Ve yalnızca değiştirme zamanı ile ilgileniyorsanız ve erişim (yani okuma) zamanı -aminile ilgilenmiyorsanız değiştirin -mmin.


zaman istemiyorsun. atime erişim zamanıdır.
ctrl-alt-delor

@richard OP ne demek istediğini belirtmedi ... Yine mtimede cevaba da koydum
lgeorget

1
@ lgeorget kullandığımda -mtime 3030 günlük dosyaları gösteriyordu.
Aravind

@ user2910201 Ups beni aptal. Xtimeseçenekler günler ve Xminseçenekler. Benim hatam, cevabı değiştiriyorum
lgeorget

2
@ user2910201, ancak otuz dakika veya beş gün Xtimegibi makul bir zaman birimi ile kullanabileceğinizi unutmayın30m5d
lgeorget

3

Bunu mtimeyapmak için kullanabilirsiniz :

find . -mmin 30    #exactly 30 minutes old

Bu size createdveya modified30 dakika önceki dosyaları söyleyecektir
g4ur4v

@ g4ur4v kullandığım -mminzaman -mmingeçerli bir seçenek değil
Aravind

find /path -mtime +30m
Şunu

Neden tanımadığından emin değilim -mmin, bu komutu kullanarak birçok örneğe baktım ..
ryekayo

3

Dışarıda GNU/BSD find

TZ=ZZZ0 touch -t "$(TZ=ZZZ0:30 date +%Y%m%d%H%M.%S)" /reference/file

ve sonra find . -newer /reference/file

Stéphane Chazelas tarafından verilen çözüm

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.