diff <(ls old) <(ls new)
diff <(ls old) <(ls new) The arguments to diff will look like /dev/fd/3 and /dev/fd/4 : they are file descriptors corresponding to two pipes created by bash. When diff opens these files, it'll be connected to the read side of each pipe. The write side of each pipe is connected to the ls command. echo <(echo) <(echo)