Câu hỏi Chia nhỏ các tệp lớn thành các tệp có đuôi .001 .002 (và vân vân) trong CentOS qua Terminal


Làm cách nào để chia nhỏ các tệp lớn thành các phần có đuôi .001 .002 (và vân vân) trong CentOS qua SSH Terminal (sử dụng Putty)?

Ví dụ, nếu tôi có một tập tin lớn - LargeFile.isothì làm cách nào tôi có thể chia thành các tệp như LargeFile.iso.001, LargeFile.iso.002, LargeFile.iso.003, LargeFile.iso.004.... và cứ thế tiếp tục LargeFile.iso.xxx (Ở đâu xxx là phần cuối cùng)?


1
2017-09-26 22:03


gốc




Các câu trả lời:


Split là bạn của bạn với các tùy chọn:

-d --numeric-suffix  for numerical suffixes
-a -- suffix-lenght  for suffix lenght

Hãy xem

split --help

trong nhà ga


4
2017-09-26 22:21





Cách tốt nhất có thể là một tập lệnh bash ngắn dọc theo các dòng

#!/bin/bash

BS=1024
SEGMENT=100000

LEN=$(ls -l | awk '{ print $5; }')
BL=$(($LEN/$BS))
S=0
I=1
while test "$BL" -le "$S"; do
  dd if="$1" of="$1."$(printf '%03d' $I) bs="$BS" skip="$S" count="$SEGMENT" 2>/dev/null
  S=$(($s+$SEGMENT))
  I=$(($I+1))
done

0
2017-09-26 22:20