This one is buggy (--no-recursion doesn't take effect): $ find . -depth -xdev -print0 -type f | tar --create --null --files-from=- --ignore-failed-read --same-permissions --no-recursion --label test --sparse --numeric-owner --file /tmp/bar && tar tf /tmp/bar
./1/2/3/d ./1/2/3/c ./1/2/3/b ./1/2/3/a ./1/2/3/ ./1/2/3/d ./1/2/3/c ./1/2/3/b ./1/2/3/a ./1/2/ ./1/2/3/ ./1/2/3/d ./1/2/3/c ./1/2/3/b ./1/2/3/a ./1/ ./1/2/ ./1/2/3/ ./1/2/3/d ./1/2/3/c ./1/2/3/b ./1/2/3/a ./ ./1/ ./1/2/ ./1/2/3/ ./1/2/3/d ./1/2/3/c ./1/2/3/b ./1/2/3/a This is okay, if --no-recursion is placed before --files-from: $ find . -depth -xdev -print0 -type f | tar --no-recursion --create --null --files-from=- --ignore-failed-read --same-permissions --sparse --numeric-owner --file /tmp/bar3 && tar tf /tmp/bar3 ./1/2/3/d ./1/2/3/c ./1/2/3/b ./1/2/3/a ./1/2/3/ ./1/2/ ./1/ ./ tar starts recursively retrieving files when parsing "--files-from" before "--no-recursion" can even take effect.