#! /usr/bin/env bash
space() {
df -h /
echo
}
echo Space before creating large file:
space
echo Creating large file:
dd if=/dev/zero of=large_file bs=1G count=10
echo
echo Space after creating large file:
space
echo Opening large file in background process:
bash -c 'exec 3< large_file; sleep 10; echo Closing large file' &
pid=$!
echo
echo Removing large file:
sleep 1; rm -v large_file
echo
echo Space after removing large file:
space
echo Waiting for large file closure:
wait "$pid"
echo
echo Space after closing large file:
space
Which confirms expectations:
Space before creating large file:
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s3s1 228Gi 10Gi 188Gi 6% 425k 2.0G 0% /
Creating large file:
10+0 records in
10+0 records out
10737418240 bytes transferred in 5.169940 secs (2076894169 bytes/sec)
Space after creating large file:
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s3s1 228Gi 10Gi 178Gi 6% 425k 1.9G 0% /
Opening large file in background process:
Removing large file:
large_file
Space after removing large file:
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s3s1 228Gi 10Gi 178Gi 6% 425k 1.9G 0% /
Waiting for large file closure:
Closing large file
Space after closing large file:
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk3s3s1 228Gi 10Gi 188Gi 6% 425k 2.0G 0% /