Nếu có cấu trúc thư mục lưu trữ các bản ghi dựa trên ngày ghi của chúng. Ban đầu có một thư mục chứa thư mục con cho mỗi ngày như thế này
- dựa
- 2010-01-01
- nhiều tập tin và đôi khi thư mục con
- 2010-01 / 02
- ...
- ...
- 2014-12-15
- 2010-01-01
Vì điều đó trở nên quá lớn đối với sự thoải mái, tôi quyết định thực hiện một số di chuyển xung quanh và kết thúc với điều này:
- dựa
- 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
Vì vậy, để có được dữ liệu ngày nay tôi sẽ tìm trong basedir/2014/12/2014-12-15/
Tôi muốn đổi tên tất cả các thư mục con đầy đủ ngày sao cho chúng chỉ có ngày trong tháng là tên. Ngày nay dữ liệu sẽ được đặt trong basedir/2014/12/15/.
Cách dễ dàng để đạt được điều này là gì?
Sau khi tìm kiếm xung quanh, tôi đã tạo ra một findregex đặc biệt cung cấp cho tôi các thư mục mà tôi đang tìm kiếm, do đó làm giảm sự thay đổi của mọi thứ.
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])'