Nếu bạn rename
không hỗ trợ -N
, bạn có thể làm một cái gì đó như thế này:
ls -1 -c | xargs rename -n 's/.*/our $i; sprintf("%04d.jpg", $i++)/e'
Chỉnh sửa Để bắt đầu với một số đã cho, bạn có thể sử dụng mã (trông hơi xấu xí) bên dưới, chỉ cần thay 123 bằng số bạn muốn:
ls -1 -c | xargs rename -n 's/.*/our $i; if(!$i) { $i=123; } sprintf("%04d.jpg", $i++)/e'
Điều này liệt kê các tệp theo thứ tự thời gian tạo (mới nhất trước, thêm -r
vào ls để sắp xếp ngược lại), sau đó gửi danh sách các tệp này để đổi tên. Đổi tên sử dụng mã perl trong regex để định dạng và bộ đếm tăng dần.
Tuy nhiên, nếu bạn đang xử lý ảnh JPEG bằng thông tin EXIF, tôi khuyên bạn nên exiftool
Đây là từ tài liệu exiftool , trong "Đổi tên ví dụ"
exiftool '-FileName<CreateDate' -d %Y%m%d_%H%M%S%%-c.%%e dir
Rename all images in "dir" according to the "CreateDate" date and time, adding a copy number with leading '-' if the file already exists ("%-c"), and
preserving the original file extension (%e). Note the extra '%' necessary to escape the filename codes (%c and %e) in the date format string.