fstab-decode - run a command with fstab-encoded arguments
fstab-decode COMMAND [ARGUMENT ...]
fstab-decode decodes escapes (such as newline characters and other whitespace) in the specified ARGUMENTs and uses them to run COMMAND. The argument escaping uses the same rules as path escaping in /etc/fstab, /etc/mtab and /proc/mtab.
In essence fstab-decode can be used anytime we want to pass multiple parameters to a command as a list of command line arguments. It turns output like this:
/root
/mnt/remote-disk
/home
Into one long list of parameters, "/root /mnt/remote-disk /home". This
can be useful when trying to work with multiple filesystems at once. For
instance, we can use it to unmount multiple NFS shares. This program also
removes whitespace and other characters which might cause programs such
as mount or umount to fail.
fstab-decode exits with status 127 if COMMAND can't be run. Otherwise it exits with the status returned by COMMAND.
The following example reads fstab, finds all instances of VFAT filesystems and
prints their mount points (argument 2 in the fstab file). fstab-decode then runs
the specified program, umount, and passes it the list of VFAT mountpoints.
This unmounts all VFAT partitions.
fstab-decode umount $(awk '$3 == "vfat" { print $2 }' /etc/fstab)