합계(Unix)
sum (Unix)원저작자 | 켄 톰슨 |
---|---|
개발자 | AT&T 벨 연구소 |
초기 릴리즈 | 1971년 11월 3일, | 전(
운영 체제 | Unix, Unix 라이크, Inferno |
플랫폼 | 크로스 플랫폼 |
유형 | 명령어 |
면허증. | 코어 유틸리티: GPLv3+ |
sum은 일부 Unix 및 Unix 유사 운영 체제에서 사용할 수 있는 레거시 유틸리티입니다.이 유틸리티는 [1]각 인수 파일의 16비트체크섬과 디스크에서 실행되는 블록 수를 출력합니다.2개의 다른 체크섬알고리즘이 사용되고 있습니다.POSIX는 cksum을 위해 포기했습니다.
개요
합산 프로그램은 일반적으로 역사적 관심사에만 유용하다.POSIX의 일부가 아닙니다.일반적으로 BSD 체크섬과 SYSV 체크섬의 2가지 알고리즘을 사용할 수 있습니다.둘 다 [2]cksum에서 사용되는 이미 약한 32비트 CRC보다 약합니다.
FreeBSD 및 GNU 구현의 기본 알고리즘은 BSD 체크섬입니다.두 알고리즘 간의 전환은 명령줄 [2][1]옵션을 통해 수행됩니다.
일반적으로 사용되는 두 가지 알고리즘은 다음과 같습니다.
BSD 합계(GNU 합계에서는 -r, FreeB에서는 -o1)SD cksum:
- 체크섬을 0으로 초기화합니다.
- 입력 스트림의 각 바이트에 대해
- 체크섬에서 16비트 오른쪽 회전을 1비트씩 수행합니다.
- 체크섬에 바이트를 추가하고 결과에 modulo 2 ^ 16을 적용하여 16비트 이내로 유지합니다.
- 그 결과 16비트 체크섬이 생성됩니다.
위의 알고리즘은 7번째 에디션 UNIX에서 사용되었습니다.
시스템 V의 합계, GNU의 -s와 FreeB의 -o2SD cksum:
- checksum0 = 입력 스트림 모듈로 2 ^ 32의 모든 바이트 합계
- checksum1 = checksum0 modulo 2 ^ 16 + checksum0 / 2 ^ 16
- 체크섬 = checksum1 modulo 2 ^16 + checksum1 / 2 ^16
- 그 결과는 16비트 체크 섬은 초기 32비트 평야 바이트 총액에서 계산했다.
구문
금액이 유틸리티는 명령줄에서 다음 구문에 따라:호출됩니다.
합계 [OPTION]...[FILE]...
가능한 옵션 파라미터는 다음과 같습니다.
- -r
- BSD 체크섬알고리즘 사용, 1K 블록 사용(deats -s)
- -s, --sysv
- SYSV 체크섬알고리즘 사용, 512바이트 블록 사용
- --도움말
- 도움말 화면을 표시하고 종료합니다.
- --버전
- 출력 버전 정보 및 종료
file 파라미터가 지정되지 않은 경우 또는 FILE이 -일 경우 표준 입력이 입력 파일로 사용됩니다.
사용 예:
$ echo Hello > test file $sum test file 36978 1
GNU 합계에서의 -s 사용 예:
$ echo Hello > test file $sum - s test file 510 1 test file
줄 바꿈을 피하기 위해 표준 입력 -r 및 printf를 사용하는 예:
$printf 헬로섬 -r 08401 1
「 」를 참조해 주세요.
- GNU 코어 유틸리티
- 네이티브 Win32로의 포트 언xUtils
레퍼런스
외부 링크
- Single UNIX ® Specification, Version 2, 1997, opengroup.org의 sum – 체크섬 알고리즘을 지정하지 않음
- C.4 The Open Group Base Specifications 제7호, 2018년판 opengroup.org의 유틸리티는 합계가 제거되었음을 나타냅니다.
- 버전 7 Unix 프로그래머 매뉴얼 –
- coreutils 매뉴얼 페이지 – GNU
- FreeBSD General Commands Manual (SD 일반 명령 매뉴얼)– 옵션 -o1 및 -o2에서 cksum까지의 합계 알고리즘 설명 –
- Linux 사용자 매뉴얼– 사용자 명령어 –
- Solaris 10 사용자 명령어 레퍼런스 매뉴얼 –
- Unix Tree, tuhs.org – 이전 버전의 Unix 소스 코드