USB 장치의 전체 바이너리 콘텐츠가 순수 0인지 확인하는 방법을 찾고 있습니다.
이 명령을 시도 중입니다.
sudo xxd /dev/sdb | uniq
그러나 출력이 없으며 영원히 실행됩니다.
Sort 명령을 고려했지만 표준 터미널 출력뿐만 아니라 파일을 읽어야 한다는 것을 이해했습니다.
업데이트: 확인할 수 있다는 것을 깨달았 sudo xxd -a /dev/sdb
지만 여전히 질문이 남아 있습니다. 먼저 파일에 저장하지 않고 터미널의 출력을 고유하게 정렬할 수 있는 방법이 있습니까?
답변1
간단히 od
or 을 사용하면 이러한 프로그램이 중복 라인 출력을 방지하므로(또는 위와 같이 사용) 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
디스크가 올바르게 제로화되면 아무 줄도 인쇄되지 않습니다.