Skip to content

Deleting files

Individual files can be deleted using the rm command, for large amounts of files it is faster to use rsync instead.

This table compares the speed of deletion using three different methods for a directory in $TMPDIR containing 500000 files:

find exec rm find delete rsync delete
9m8.274s 0m17.378s 0m12.313s

As can be seen rsync is significantly faster than using rm directly.

Using rsync to delete files

Files in a directory can be deleted via rsync with the following commands:

# Create an empty directory
mkdir empty_dir
# Copy empty directory over target directory
rsync -a --delete empty_dir/ <target_dir>/
# Clean up by removing both directories
rmdir <target_dir> empty_dir

This should be submitted as a job so the frontend nodes are not overloaded:

#!/bin/bash
#$ -cwd
#$ -j y
#$ -pe smp 1
#$ -l h_rt=1:0:0
#$ -l h_vmem=1G

TARGET_DIR=example_directory

mkdir empty
time rsync -a --delete empty/ ${TARGET_DIR}/
rmdir empty ${TARGET_DIR}