Điểm:0

Chia tệp thành nhiều thư mục con và nén từng thư mục con

lá cờ mx

tôi đang dùng Ubuntu 18.04.5 LTS.

Tôi đã tạo tập lệnh sau để chia các tệp trong một thư mục thành các thư mục con khác nhau:

#!/bin/bash

dir_size=850
dir_name="hình ảnh"
n=$((`find . -maxdepth 1 -type f | wc -l`/$dir_size+1))
cho tôi trong `seq 1 $n`;
làm
    mkdir -p "$dir_name$i";
    tìm thấy . -maxdepth 1 -type f | đầu -n $dir_size | xargs -i mv "{}" "$dir_name$i"
xong

Tuy nhiên, tôi muốn khóa kéo mỗi thư mục con sau khi tạo, do đó tôi chỉ nhận được các thư mục con đã nén trong thư mục cuối cùng của mình.

Bất kỳ đề nghị làm thế nào để làm điều này?

Tôi đánh giá cao câu trả lời của bạn!

vanadium avatar
lá cờ cn
`"$dir_name$i"` là thư mục bạn đã tạo. Vậy điều gì ngăn cản bạn, trong khi ở trong vòng lặp `do...done`, nén thư mục sau đó?
bac0n avatar
lá cờ cn
Có lý do cụ thể nào để sử dụng `zip` không?
Điểm:1
lá cờ cn

Bạn có thể sử dụng vòng lặp for để lấy số lượng mục cố định. một sẽ tăng theo số lượng cb bởi mỗi lần lặp lại.

#!/bin/bash

mapfile -td '' < <( \
    tìm -maxdepth 1 -type f ! -tên '*.zip' -print0 \
)
((${#MAPFILE} == 0)) && thoát 1

for ((a=0, b=0, c=850; a<${#MAPFILE[@]}; a+=c, b++)); làm
    hình ảnh mkdir$b && \
    mv -t $_ "${MAPFILE[@]:$a:$c}" && zip -mTr images$b images$b
xong

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.