macOS 디렉토리의 파일이 차지하는 전체 공간을 반환하는 Bash 스크립트

macOS 디렉토리의 파일이 차지하는 전체 공간을 반환하는 Bash 스크립트

macOS 디렉토리의 파일이 차지하는 전체 공간을 반환하는 bash 스크립트를 만들려고 합니다 ~/Pictures/Photos\ Library.photoslibrary/Masters/.

#!/bin/bash
# AUTHOR:SWASTI BHUSHAN DEB

    # Platfrom:macOS
    # macOS High Sierra 10.13.
    #Checks the total space occupied by files within a directory


    read -e -p "Enter the full path to the Home Directory : userpath
    var=$(sudo du -ach $userpath/Photos\ Library.photoslibrary/Masters/|tail -1|awk '{print $1}')
    echo "$var"
    exit

터미널에서 단독으로 사용하면 다음 명령이 원하는 결과를 제공합니다.

`du -ach ~/Pictures/Photos\ Library.photoslibrary/Masters/|tail -1|awk '{print $1}'
25G

그러나 위의 스크립트에 $userpath를 입력하면 스크립트에 오류가 발생합니다.

 du: /Volumes/Macintosh: No such file or directory
du: HD/Users/swastibhushandeb/Pictures/Photos Library.photoslibrary/Masters/: No such file or directory
0B

이게 무슨 문제인지 잘 모르겠습니다. 모든 의견/제안/샘플 스크립트 코드 환영

답변1

변수를 사용할 때 변수를 인용해야 합니다. 그렇지 않으면 공백 및 기타 특수 문자가 있는 경로가 작동하지 않습니다.

read -e -p "Enter the full path to the Home Directory :" userpath
var=$(sudo du -ach "$userpath/Photos Library.photoslibrary/Masters/" |tail -1|awk '{print $1}')
echo "$var"
exit

추신: 대부분의 출력을 버리는 경우에는 du이 옵션이 필요하지 않을 것입니다 -a.

관련 정보