build - Unix : fast 'remove directory' for cleanin

有没有更快的方法来删除目录然后简单地提交

rm -r -f *directory*

?我问这个是因为我们每天的跨平台构建非常庞大(例如每个构建 4GB)。所以有些机器上的硬盘经常用完空间。

这就是我们的 AIX 和 Solaris 平台的情况。

也许这些平台上有用于目录删除的“特殊”命令?

粘贴编辑(将我自己的单独答案移到问题中):

我通常想知道为什么'rm -r -f' 这么慢。 'rm' 不只需要修改 '..' 或 '.'文件以取消分配文件系统条目。

类似

mv *directory* /dev/null

会很好。

最佳答案

要从文件系统中删除目录,rm 是您最快的选择。 在 linux 上,有时我们在 ramdisk 中进行构建(几 GB),它的删除速度非常令人印象深刻 :) 你也可以尝试不同的文件系统,但在 AIX/Solaris 上你可能没有太多选择......

如果您的目标是让目录 $dir现在为空,您可以重命名它,并稍后从后台/cron 作业中删除它:

mv "$dir" "$dir.old"
mkdir "$dir"
# later
rm -r -f "$dir.old"

另一个技巧是你为 $dir 创建一个单独的文件系统,当你想删除它时,你只需重新创建文件系统。像这样的:

# initialization
mkfs.something /dev/device
mount /dev/device "$dir"


# when you want to delete it:
umount "$dir"
# re-init
mkfs.something /dev/device
mount /dev/device "$dir"

关于build - Unix : fast 'remove directory' for cleaning up daily builds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1795370/

相关文章:

build - 找不到工件的不可解析父 POM 和 'parent.relativePath' 点在

ios - 从 xcode 命令行生成 ipa

build - 更改 CMake 文件标准位置

visual-studio - Visual Studio 可以在构建日志中添加时间戳吗?

haskell - 平行 cabal

ios - 防止 Xcode 每次都构建子项目

java - 无法找到 tools.jar。预计在 C :\Program Files\Java\j

maven - 从 Maven 运行 Gradle

python - 将 build_ext 选项传递给 pip install

java - 如何解决模块 X 的多个工件被检索到 Apache Ivy 中的同一个文件?