Tôi có một thư mục và một số phần mở rộng của tệp được viết hoa (.JPG) thay vì chữ thường.
Tôi muốn đảm bảo mọi tệp đều có .jpg là phần mở rộng của nó. Làm thế nào tôi có thể làm điều này từ một dấu nhắc shell?
Tôi có một thư mục và một số phần mở rộng của tệp được viết hoa (.JPG) thay vì chữ thường.
Tôi muốn đảm bảo mọi tệp đều có .jpg là phần mở rộng của nó. Làm thế nào tôi có thể làm điều này từ một dấu nhắc shell?
Câu trả lời:
Sử dụng mở rộng tham số Shell :
for f in *.JPG; do
mv "${f}" "${f%%.JPG}.jpg"
done
Các "nhân vật sẽ chăm sóc tên tập tin có chứa không gian, như các bức ảnh thường làm.
/path/to/*.JPG. Bạn được chào đón để gửi câu trả lời của riêng bạn, tất nhiên :)
Nếu bạn có thể sử dụng các công cụ bên ngoài (không chỉ bash), hãy kiểm tra renamelệnh!
rename .JPG .jpg *
Đây renamelà một phần của util-linux.
perlviệc chấp nhận các đối số khác nhau để làm điều tương tự.
Tôi sẽ đề nghị có một cái nhìn vào mmvlệnh. Nó phù hợp chính xác cho loại nhiệm vụ này. Trong kịch bản của bạn, nó sẽ là:
#> mmv "*.JPG" "#1.jpg"
Các trang người đàn ông có đầy đủ các ví dụ, vì vậy nó cần có thời gian để làm quen với nó.
Trên các hệ thống Debian, nó có thể được cài đặt với:
#> aptitude install mmv
nếu bạn không có khoảng trắng trong tên tệp:
for f in *.JPG; do mv $f `echo $f | sed 's/JPG$/jpg/'`; done
mv.