Nếu tôi chọn tệp nén và nhấp chuột phải "trích xuất tại đây", thư mục có tên tệp zip được tạo và toàn bộ nội dung của tệp zip được trích xuất vào đó.tạo thư mục cho tệp zip và giải nén vào nó
Tuy nhiên, tôi muốn chuyển đổi một số tệp zip qua trình bao. Nhưng khi tôi làm
unzip filename.zip
thư mục "filename"
không được tạo ra nhưng tất cả các tập tin được trích xuất vào thư mục hiện hành.
Tôi đã xem xét các tham số nhưng không có tham số như vậy. Tôi cũng đã cố gắng
for zipfile in \*.zip; do mkdir $zipfile; unzip $zipfile -d $zipfile/; done
nhưng .zip
mở rộng của 2. $ zipfile và 4. $ zipfile phải được loại bỏ với sed. Nếu tôi làm
for zipfile in \*.zip; do mkdir sed 's/\.zip//i' $zipfile; unzip $zipfile -d sed 's/\.zip//i' $zipfile/; done
nó không hoạt động.
Làm cách nào để thay thế tiện ích mở rộng .zip
của $zipfile
đúng cách?
Có cách nào dễ hơn so với tập lệnh hệ vỏ không?
Cảm ơn, hoạt động như một sự quyến rũ. – jack
Nhưng những gì tôi không hiểu là lý do tại sao $ 0 chứa tên tệp hoàn chỉnh và $ 1 không phải là phần mở rộng ".zip"? – jack
@jack Tôi đã định nghĩa ".zip" làm FS (Phân tách trường). Vì vậy, 001.zip sẽ được tách thành hai phần "001" và "". $ 1 là trường đầu tiên. và $ 0 là toàn bộ dòng trong trường hợp này là "001.zip" trong awk, trường được tính từ 1, không phải 0. – Kent