[Linux] tar: Cowardly refusing to create an empty archiveの解決方法
フォルダやファイルをtarでまとめてgzip圧縮したファイル(.tar.gz形式のファイル)を作成しようと思って久しぶりにtarコマンドを実行してみたら、
tar: Cowardly refusing to create an empty archive
というエラーメッセージが表示されてしまい、ファイルを作成できなかった。
この英語のエラーメッセージを直訳すると、
「tar : 臆病なことに、空のアーカイブを作成することを拒否」
となる。
「Cowardly」を辞書で調べると「臆病なことに」「卑怯なことに」「卑劣なことに」という訳語になるようだが、文脈的に臆病とか卑怯とか卑劣とかに訳すのは変だなぁ。「残念なことに」ぐらいの意味がいいのかな。でももしかしたら、このエラーメッセージを作成した人は、面白おかしくするために、このような言葉を意図的に使っているのかもしれない...などと夜中に考えて無駄に時間が過ぎていってしまった。英語のお勉強はまた別の機会に。
このエラーの原因はすぐに分かった。
「tar: Cowardly refusing to create an empty archive」となる原因
tarコマンドの使い方が間違っていた。
圧縮前のディレクトリ名を指定するのを忘れていた。
正しくないtarコマンドの実行例とエラーメッセージ
$ tar cpzf backup.tar.gz
tar: Cowardly refusing to create an empty archive
Try `tar --help' or `tar --usage' for more information.
「tar: Cowardly refusing to create an empty archive」の解決方法
このエラーは「圧縮後ファイル名」の右側に「圧縮前ディレクトリ名」を指定することで解決する。
正しいtarコマンドの使い方(書式)
tar cpzf 「圧縮後ファイル名」 「圧縮前ディレクトリ名」
正しいtarコマンドの実行例
$ tar cpzf backup.tar.gz backup/
この実行例は、
圧縮後ファイル名 :backup.tar.gz
圧縮前ディレクトリ名:backup/
としたい場合の例。