这可能是基本的东西,但我无法让它发挥作用。我正在尝试使用 DU 来获取文件的总大小减去某些目录。我需要排除一个名为 的特定目录,uploads
但不是每个名为 的目录uploads
。例如,我的文件结构看起来有点像这样:
/store
/uploads
/junk_to_ignore
/more_junk_to_ignore
/user_one
/uploads
/user_two
我可以运行以下命令:
du -ch --exclude=uploads*
它给了我减去所有“上传”目录的文件大小。但是,在尝试排除某些目录(及其所有子目录)时我失败了。我尝试过以下变体:
du -ch --exclude=./uploads*
du -ch --exclude='/full/path/to/uploads/*'
但似乎无法弄清楚。如何排除特定目录?
答案1
你几乎已经找到了:)
du -ch --exclude=./relative/path/to/uploads
笔记不星号在末尾。星号代表全部“上传”下的子目录应该被省略 - 但不是直接在该目录中的文件。
答案2
要排除多个目录,只需再次传递 --exclude 标志即可。
du -ch --exclude=relative/path/to/uploads --exclude other/path/to/exclude
答案3
太棒了,要跳过虚拟文件系统,请执行以下操作:
du -hsx --exclude=/{proc,sys,dev,run} /*
答案4
如果您必须在 macOS 上,请使用以下命令安装 GNU Coreutils。
brew install coreutils
Coreutils 安装的大多数命令都以 为前缀g
,因为它们在 macOS 上预安装了 BSD 同名命令。然后您可以执行以下操作。
gdu --exclude=Microsoft /Library/Fonts/