ファイルが多く、100ファイルごとにアーカイブを作成したいと思います。つまり、最初の100ファイルは1つのtarファイルにあり、101番目から200番目のファイルは別のtarファイルにあります。 tar名で日付(ナノ秒)を使いたいです。
私は次のようなものがあります:
( cd "${SOURCE_DIR}" && find . -type f -name "${FILE_GLOB}" ) |
xargs -n 100 | xargs -I % sh -c '{tar -C "${SOURCE_DIR}" --files-from - % -cf "${DESTINATION_DIR}/$(date '+%Y%m%d%H%M%S%N')-$(uname -n).tar~"}'
今の問題は、日付書式文字列の '%'がxargs
私が望んでいない引数を受け入れることです。
これが起こらないようにするにはどうすればよいですか?
ベストアンサー1
明らかに代わりに別の記号を使用してください%
。
たとえば、次のように-I @
なります。
( cd "${SOURCE_DIR}" && find . -type f -name "${FILE_GLOB}" ) |
xargs -n 100 | xargs -I @ sh -c '{tar -C "${SOURCE_DIR}" --files-from - @ -cf "${DESTINATION_DIR}/$(date '+%Y%m%d%H%M%S%N')-$(uname -n).tar~"}'