Wil*_*ill 93 command-line disk-usage
这可能是一些基本的东西,但我无法让它发挥作用。我正在尝试使用 DU 来获取减去某些目录的文件总大小。我需要排除一个名为的特定目录,uploads但不是每个名为uploads. 例如,我的文件结构看起来有点像这样:
/store
/uploads
/junk_to_ignore
/more_junk_to_ignore
/user_one
/uploads
/user_two
Run Code Online (Sandbox Code Playgroud)
我可以运行以下命令:
du -ch --exclude=uploads*
Run Code Online (Sandbox Code Playgroud)
它给了我减去所有“上传”目录的文件大小。但是,在尝试排除某些目录(及其所有子目录)时我失败了。我尝试了以下变体:
du -ch --exclude=./uploads*
du -ch --exclude='/full/path/to/uploads/*'
Run Code Online (Sandbox Code Playgroud)
但似乎无法弄清楚。如何排除特定目录?
roz*_*acz 117
你几乎找到了:)
du -ch --exclude=./relative/path/to/uploads
Run Code Online (Sandbox Code Playgroud)
注意末尾没有星号。星号意味着“上传”下的所有子目录都应该被省略 - 但不是直接在该目录中的文件。
小智 15
要排除多个目录,只需再次传递 --exclude 标志。
du -ch --exclude=relative/path/to/uploads --exclude other/path/to/exclude
Run Code Online (Sandbox Code Playgroud)
排除多个文件夹
du -ch --exclude={path/to/folder1,path/to_folder2/,...,}
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您必须使用 macOS,请使用以下命令安装 GNU Coreutils。
brew install coreutils
Run Code Online (Sandbox Code Playgroud)
Coreutils 安装的大多数命令都以 为前缀g,因为它们在 macOS 上预装了 BSD 同名。然后您可以执行以下操作。
gdu --exclude=Microsoft /Library/Fonts/
Run Code Online (Sandbox Code Playgroud)
小智 5
只需添加一个 Mac 示例
du -skI "Downloads" -I "Caches" -I "Logs" -I "OneDrive" .
Run Code Online (Sandbox Code Playgroud)
我没有看到使用路径的方法-I,所以例如,我还没有得到
du -skI "Downloads" -I "Caches" -I "Logs" -I "OneDrive" -I "Library/Application Support" .
Run Code Online (Sandbox Code Playgroud)
上班。也许有可能,但我还没有得到它。