Kayıt tarihlerine göre kayıtları saklayan bir dizin yapısına sahipseniz. Başlangıçta böyle her gün için bir alt dizin içeren bir dizin vardı.
- basedir
- 2010-01-01
- birden fazla dosya ve bazen alt dizinler
- 2010-01-02
- ...
- ...
- 2014/12/15
- 2010-01-01
Bu, konfor için fazla büyüdüğü için, biraz hareket etmeye karar verdim ve bununla sonuçlandım:
- basedir
- 2010
- 01
- 2010-01-01
- 2010-01-02
- ...
- 2010-01-31
- 02
- 2010-02-01
- 2010-02-02
- ...
- 2010-02-28
- 03
- ...
- 01
- 2011
- ...
- 2014
- 2010
Bu yüzden bugünün verilerini elde etmek için bakacağım basedir/2014/12/2014-12-15/
Tüm tarih alt dizinlerinin adlarını sadece ayın gününe sahip olacak şekilde yeniden adlandırmak istiyorum. Bugünün verileri daha sonra bulunur basedir/2014/12/15/.
Bunu başarmanın kolay yolu nedir?
Bazı etrafa baktıktan sonra find, bana özellikle aradığım dizinleri veren bir regex yarattım , böylece işleri karıştırmak da değişiyor.
find . -type d -regextype posix-extended -regex '.*/(20[0-9]{2})/(0[1-9]|1[0-2])/\1-\2-(0[1-9]|[1-2][0-9]|3[0-1])'