답변:
글쎄, stat
및을 가정하면 다음 과 bash
같이 파일 크기를 얻을 수 있습니다.
stat -c %s your_file
$amount
로 해당 파일 의 마지막 바이트 를 추출하려면 dd
다음을 수행하십시오.
dd if=your_file of=extracted_part \
bs=1 count=$amount \
skip=$(( $(stat -c %s your_file) - $amount ))
그러나 더 순수한 접근 방식은 다음을 사용하는 것입니다 tail
.
tail -c $(( 1024*1024 )) your_file > target_file
-c
에 대한 옵션이 없다 head
?
dd-도움말 사용법 : dd [OPERAND] ... 또는 : dd OPTION 피연산자에 따라 파일을 변환하고 형식을 복사하십시오. bs = BYTES 한 번에 BYTES 바이트를 읽고 씁니다 (ibs =, obs = 참조) cbs = BYTES는 한 번에 BYTES 바이트를 변환합니다 conv = CONVS는 쉼표로 구분 된 기호 목록에 따라 파일을 변환합니다 count = BLOCKS는 BLOCKS 입력 블록 만 복사합니다. ibs = BYTES 한 번에 BYTES 바이트를 읽습니다 (기본값 : 512) if = FILE stdin 대신 FILE에서 읽습니다. iflag = FLAGS는 쉼표로 구분 된 기호 목록에 따라 읽습니다. obs = BYTES는 한 번에 BYTES 바이트를 씁니다 (기본값 : 512) of = FILE stdout 대신 FILE에 쓰기 oflag = FLAGS는 쉼표로 구분 된 기호 목록에 따라 작성합니다 seek = BLOCKS 출력 시작시 블록 크기가 무시 된 블록을 건너 뜁니다. skip = BLOCKS 입력을 시작할 때 블록을 ibs 크기의 블록을 건너 뜁니다 status = noxfer 전송 전송 억제 BLOCKS 및 BYTES 뒤에는 다음과 같은 곱셈 접미사가 올 수 있습니다. c = 1, w = 2, b = 512, kB = 1000, K = 1024, MB = 1000 * 1000, M = 1024 * 1024, xM = M T, P, E, Z, Y의 경우 GB = 1000 * 1000 * 1000, G = 1024 * 1024 * 1024 등입니다.
파일 크기가 정확히 10MB 인 경우 1024 * 10 10240K 마지막 1024K를 남깁니다. ibs 및 obs 옵션을 사용하여 작업중인 블록 크기를 지정해야합니다.
1M = 1024K
1024*9 = 9216
dd if=/10/MB/file of=/9/MB/file count=9216K ibs=1K obs=1K
dd if=/10/MB/file of=/9/MB/file count=9M ibs=1M obs=1M
skip 옵션을 사용하여 파일의 첫 번째 1MB를 건너 뛰는 파일 끝까지 읽을 수 있도록 파일의 첫 1MB를 건너 뛸 수도 있습니다.
dd if=/10/MB/file of=/9/MB/file skip=1M ibs=1M obs=1M
seek 옵션을 사용하여 출력 파일의 특정 위치에을 쓸 수 있습니다. 처음 1MB를 유지하고 마지막 8MB를 덮어 쓰려고한다고 가정하십시오.
dd if=/10/MB/file of=/9/MB/file skip=1M seek=1M count=8M ibs=1M obs=1M
적절한 양의 데이터를 가져오고 내보내려면 파일 크기에 대한 세부 정보가 필요할 수 있습니다.
ls -s --block-size 1K ./my/10MB/file
남자 ls --block-size = SIZE SIZE 바이트 블록을 사용하십시오. 아래의 SIZE 형식을 참조하십시오 -s, --size 각 파일의 할당 된 크기를 블록 단위로 인쇄 SIZE는 다음 중 하나 일 수 있습니다 (또는 선택적으로 정수가 될 수 있음). 최저 : G, T, KB 1000, K 1024, MB 1000 * 1000, M 1024 * 1024 등 P, E, Z, Y.