xxd 및 uniq를 사용하여 드라이브가 0으로 설정되었는지 확인하시겠습니까?

xxd 및 uniq를 사용하여 드라이브가 0으로 설정되었는지 확인하시겠습니까?

USB 장치의 전체 바이너리 콘텐츠가 순수 0인지 확인하는 방법을 찾고 있습니다.

이 명령을 시도 중입니다. sudo xxd /dev/sdb | uniq그러나 출력이 없으며 영원히 실행됩니다.

Sort 명령을 고려했지만 표준 터미널 출력뿐만 아니라 파일을 읽어야 한다는 것을 이해했습니다.

업데이트: 확인할 수 있다는 것을 깨달았 sudo xxd -a /dev/sdb지만 여전히 질문이 남아 있습니다. 먼저 파일에 저장하지 않고 터미널의 출력을 고유하게 정렬할 수 있는 방법이 있습니까?

답변1

간단히 odor 을 사용하면 이러한 프로그램이 중복 라인 출력을 방지하므로(또는 위와 같이 사용) hexdump괜찮습니다 . xxd -a예를 들어:

$ truncate -s 1M test
$ hexdump test
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
0100000
$ od test
0000000 000000 000000 000000 000000 000000 000000 000000 000000
*
4000000

드라이브가 0으로 설정되면 출력은 이것과 크게 다르지 않으며 단지 최종 주소가 훨씬 더 커질 뿐입니다. 다른 데이터가 표시되면 Crtl- 을 클릭하세요 C.

0이 아닌 데이터를 찾고 터미널을 채운 후 계속 진행하지 않으려면 다음을 수행할 수 있습니다( 에서 bash).

count=0
stdbuf -oL od /dev/sdb |
  while read line; do
    echo "$line"
    (( ++count > 3 )) && break
  done

그러면 드라이브가 0으로 설정되었는지 여부를 알 수 있는 최대 4줄의 출력이 인쇄됩니다.

Top은 이 일을 깔끔하게 처리했고 여러분도 똑같이 할 수 있습니다 sudo xxd /dev/sdb | sort -u. 정렬 옵션을 추가하는 -u것은 를 실행하는 것과 같습니다 sort | uniq.

답변2

xxd나는 이것이 이 나사에 적합한 망치라고 생각하지 않습니다. null 바이트 제거를 실행 tr하고 남은 것이 있는지 확인할 수 있습니다.

[ -n "$(</dev/sdb tr -dc '\0' | head -c 1)" ]

od비어 있는 행을 축소하는 를 사용할 수도 있습니다 .

[ "$(od -tx1 -An -w1 | head -n 2 | tr -d ' \n')" = "00*" ]

답변3

이 명령이 문제를 해결할 수 있을 것 같아요

xxd /dev/sdb | grep -v '0000 0000 0000 0000 0000 0000 0000 0000'

드라이브가 0으로 설정되면 이 명령은 출력을 반환하지 않습니다. 바이트가 남아 있으면 명령이 화면에 해당 바이트를 묻는 메시지를 표시합니다.

감사해요

답변4

cat -b /dev/disk2 

디스크에서 비어 있지 않은 줄을 인쇄하려면 이 cat명령과 해당 옵션을 사용해 보십시오. -b디스크가 올바르게 제로화되면 아무 줄도 인쇄되지 않습니다.

관련 정보