[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/
としたい場合の例。

前へ

[Apache] .htaccessで特定ディレクトリ配下へのアクセスを別ディレクトリにリダイレクトする方法