다양한 체크섬 유틸리티는 해시 앞에 백슬래시를 추가합니다.

다양한 체크섬 유틸리티는 해시 앞에 백슬래시를 추가합니다.

여기서 무슨 일이 일어나고 있는 걸까요? 디렉토리 이름 및/또는 파일 이름의 백슬래시는 다양한 체크섬 유틸리티가 백슬래시 앞에 오는 해시를 보고하도록 하는 것으로 보입니다.

coreutil은 wc이런 방식으로 동작하지 않습니다.

동작은 예상대로입니다.

#ppd# ls -1a
.
..
#ppd# mkdir a\\b
#ppd# ls -1
a\b
#ppd# for i in 1 2 3; do echo $i > a\\b/c$i; done

#ppd# ls -1 a\\b/c*
a\b/c1
a\b/c2
a\b/c3

#ppd# cat a\\b/c*
1
2
3

#ppd# wc --version
wc (GNU coreutils) 8.13
#pre# wc a\\b/c*
1 1 2 a\b/c1
1 1 2 a\b/c2
1 1 2 a\b/c3

#ppd# cd a\\b/

#ppd# md5sum --version
md5sum (GNU coreutils) 8.13

#ppd# md5sum c*
b026324c6904b2a9cb4b88d6d61c81d1  c1
26ab0db90d72e28ad0ba1e22ee510510  c2
6d7fce9fee471194aa8b5b6e47267f03  c3

이제 이상한 동작을 살펴보겠습니다.

#ppd# pwd
/home/abe/tdir/a\b

#ppd# md5sum ../a\\b/c*
\b026324c6904b2a9cb4b88d6d61c81d1  ../a\\b/c1
\26ab0db90d72e28ad0ba1e22ee510510  ../a\\b/c2
\6d7fce9fee471194aa8b5b6e47267f03  ../a\\b/c3

#ppd# cd ..

#ppd# md5sum a\\b/c*
\b026324c6904b2a9cb4b88d6d61c81d1  a\\b/c1
\26ab0db90d72e28ad0ba1e22ee510510  a\\b/c2
\6d7fce9fee471194aa8b5b6e47267f03  a\\b/c3

#ppd# sha1sum a\\b/c*
\e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e  a\\b/c1
\7448d8798a4380162d4b56f9b452e2f6f9e24e7a  a\\b/c2
\a3db5c13ff90a36963278c6a39e4ee3c22e2a436  a\\b/c3

#ppd# sha256sum a\\b/c*
\4355a46b19d348dc2f57c046f8ef63d4538ebb936000f3c9ee954a27460dd865  a\\b/c1
\53c234e5e8472b6ac51c1ae1cab3fe06fad053beb8ebfd8977b010655bfdd3c3  a\\b/c2
\1121cfccd5913f0a63fec40a6ffd44ea64f9dc135c66634ba001d10bcf4302a2  a\\b/c3

파일 이름의 백슬래시:

#ppd# echo "4" > a\\b/c\\4
#ppd# ls -1 a\\b/*
a\b/c1
a\b/c2
a\b/c3
a\b/c\4

#ppd# md5sum a\\b/*
\b026324c6904b2a9cb4b88d6d61c81d1  a\\b/c1
\26ab0db90d72e28ad0ba1e22ee510510  a\\b/c2
\6d7fce9fee471194aa8b5b6e47267f03  a\\b/c3
\48a24b70a0b376535542b996af517398  a\\b/c\\4

#ppd# cd a\\b/
#ppd# md5sum *
b026324c6904b2a9cb4b88d6d61c81d1  c1
26ab0db90d72e28ad0ba1e22ee510510  c2
6d7fce9fee471194aa8b5b6e47267f03  c3
\48a24b70a0b376535542b996af517398  c\\4

xattrs에 해시를 ss=md5sum <filename>; setfattr -n user.cksm -v ${ss:0:32}. 다음은 보고된 문자 중 일부입니다 getfattr -n user.cksm.md5(첫 번째 줄은 문자 수를 계산하는 데 도움을 주기 위한 것입니다. md5 해시의 경우 문자 수는 32여야 합니다.

#              123456789 123456789 123456789 12
user.cksm.md5="be28d5286d9c719a904550f41593d"
user.cksm.md5="a4e9e6958c9d5762dcf090871e44bf"
user.cksm.md5="#f39b8c4dc110178505c089cba7986"
user.cksm.md5="\\ebf1b8f8054d21c78f2a699776f84a0"
user.cksm.md5="+c2769ebdd2ce3a8355395d2129051"
user.cksm.md5="/9ac5b68efea0e9f02c917503cbb3e"

답변1

(자기 답변을 질문에서 제외)

~에 따르면이 답변도착하다또 다른 문제, 현재 질문에 대한 답변은 rtfm입니다.

참고: GNU sha 요약 문서는 md5sum 요약 문서를 참조합니다.

각 파일에 대해 "md5sum"은 기본적으로 MD5 체크섬, 공백, 바이너리 또는 텍스트 입력 모드를 나타내는 플래그 및 파일 이름을 출력합니다. 바이너리 모드는 "*"로 표시되고 텍스트 모드는 " "(공백)으로 표시됩니다. 중요한 시스템에서는 바이너리 모드가 기본 모드이고, 그렇지 않은 경우에는 텍스트 모드가 기본 모드입니다. 만약 파일백슬래시 포함또는 줄바꿈을 사용하면 해당 줄은 백슬래시로 시작하고 파일 이름에서 문제가 있는 모든 문자는 백슬래시로 이스케이프되므로 임의의 파일 이름이 있더라도 출력이 명확해집니다. file을 생략하거나 "-"로 지정하면 표준 입력을 읽습니다.

관련 정보