.png)
나는 다음과 같은 출력을 원합니다: name
size
및 hash
:
myfile.txt 222M 24f4ce42e0bc39ddf7b7e879a
mynewfile.txt 353M a274613df45a94c3c67fe646
오직 내가 가지고 있는 name
것은size
ll -h | awk '{print $9,$10,$11,$12,$5}'
hash
하지만 모든 파일을 어떻게 얻을 수 있습니까 ? 나는 시도했다:
ll -h | awk '{print $9,$10,$11,$12,$5}' | md5sum
하지만 나는 해시를 하나만 얻습니다.
답변1
ls를 구문 분석하면 안 됩니다., 대신 다음을 사용하세요.
for f in * .*; do
[ -f "$f" ] && \
printf "%s %s %s\n" "$f" $(du -h -- "$f" | cut -f1) $(md5sum -- "$f" | cut -d' ' -f1)
done
- 루프
for
는 현재 디렉터리의 모든 파일과 디렉터리를 통해 실행됩니다.[ -f "$f" ]
일반 파일인지 확인printf "%s %s %s\n"
인수를 원하는 형식으로 인쇄합니다."$f"
첫 번째 인수는 파일 이름입니다.du -h -- "$f" | cut -f1
두 번째는 크기(사람이 읽을 수 있음)이지만 파일 이름은 아니며cut
첫 번째 필드를 제외한 모든 항목을 잘라냅니다.md5sum -- "$f" | cut -d' ' -f1
세 번째는 MD5 합계이지만 파일 이름은 없습니다.