I needed to convert a directory full of CPIO files to tar balls. This quick script did the trick for me but didn't preserve the user / group. Running it as root will preserve the ownership information but that wasn't important for my immediate use case.

1
2
3
4
5
6
7
8
#!/bin/bash

SRC_DIR=$(pwd)
for i in *.cpio; do
  CPIO_TMP_DIR="$(mktemp -d /tmp/cpioconv.XXXX)"
  (cd ${CPIO_TMP_DIR} && cpio -idm < "${SRC_DIR}/${i}" && tar -cf ${SRC_DIR}/${i%%.cpio}.tar .)
  rm -rf ${CPIO_TMP_DIR}
done