Để giải nen
Chúng ta có thể sử dụng zipinfo
như một phần của quy trình này, đó là một chương trình từ zip
gói.
zipinfo -2 example.zip
sẽ chỉ hiển thị tên tệp trong example.zip
, trông giống như:
file1-long-name-...-bla-bla.html
file2-long-name-...-bla-bla.html
vì vậy chúng tôi có thể sử dụng tính năng này để giải nén tất cả các tệp:
zipinfo -2 example.zip | while read i;
do
long_fname=${i%.*}
unzip -p -c example.zip "$i" > "${long_fname:0:250}.${i##*.}"
done;
long_fname=${i%.*}
: Xóa phần mở rộng khỏi tên tệp dài, do đó, trong trường hợp tên tệp nhỏ hơn 256 ký tự; Chúng tôi sẽ không nhận được một phần mở rộng trùng lặp.
${long_fname:0:250}.${i##*.}
: Tạo một tên tệp mới với số ký tự hợp pháp cũng thêm một .
phần mở rộng thực và tệp.
Đơn giản là chúng tôi đang lặp vào danh sách tập tin và trích xuất từng tệp với tên tệp hợp pháp mới là 256 ký tự.
Đổi tên
Bạn có thể sử dụng zipnote
lệnh, nó cũng là một phần của zip
gói.
Nhận một bản sao lưu của tập tin zip của bạn đầu tiên.
Chạy lệnh này:
zipnote example.zip > names
Mở tên bằng trình chỉnh sửa, nó trông như thế này:
@ file name long in zip and a lot of other strings in the file name
@ (comment above this line)
@ (zip file comment below this line)
Thêm tên tệp mới như thế này:
@ file name long in zip and a lot of other strings in the file name
@=new short name for above file
@ (comment above this line)
@ (zip file comment below this line)
Sau đó, để đổi tên tập tin sử dụng:
zipnote -w example.zip < names
Bạn đã đổi tên tất cả, bạn cũng có thể viết một tập lệnh đơn giản tự động làm việc này cho bạn.
unzip -l <ARCHIVE>
cái gì và làm thế nào để bạn muốn cắt tên? Bạn có muốn giữ lại cấu trúc thư mục bên trong kho lưu trữ trong quá trình giải nén không?