Linux Bash: Chia file vào thư mục theo số lượng định sẵn
Bạn có một thư mục có rất nhiều file tuy nhiên bạn muốn chia các file vào các thư mục con. Mỗi thư mục 600 file. Bạn có thể tham khảo cấu trúc sau.
Sau khi chạy script sẽ chia 600 file vào các thư mục có tên ThuMuc1 , ThuMuc2 ...
#!/bin/bash
OIFS="$IFS"
IFS=$'\n'
x=1
dir_size=600
dir_name="ThuMuc"
n=$((`find . -maxdepth 1 -type f | wc -l`/$dir_size+1))
for i in `seq 1 $n`;
do
mkdir -p "$dir_name$i";
find . -type f -print0 | while IFS= read -r -d $'\0' line; do
if [ $x -le $dir_size ]
then
mv "$line" "$dir_name$i"
x=$(( $x + 1 ))
fi
done
done
Không có nhận xét nào:
Đăng nhận xét