Bash 脚本将返回 macOS 目录中文件占用的总空间

Bash 脚本将返回 macOS 目录中文件占用的总空间

我正在尝试创建一个 bash 脚本,该脚本将返回 macOS 目录中文件占用的总空间 ~/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

PS:当你扔掉大部分输出时,du你可能不需要这个-a选项。

相关内容