どのようにtarディレクトリを削除し、ディレクトリを含むオリジナルを削除するには?
my_directory'というディレクトリ内のファイルの集まりをtar
して、コマンドを使って元のファイルを削除しようとしているのですが、このコマンドはディレクトリ内の個々のファイルを削除するだけで、ディレクトリ自体を削除するものではありません。
tar -cvf files.tar my_directory --remove-files
しかし、それはディレクトリ内の個々のファイルを削除するだけで、ディレクトリ自体を削除するものではありません(これは私がコマンドで指定したものです)。何が足りないのでしょうか?
EDIT:
はい、「remove-files」オプションはかなりリテラルなものだと思います。私もマニュアルページではその点がよくわかりませんでした。(linuxではディレクトリとファイルをあまり区別しない傾向があり、同じものではないことを忘れてしまうこともあります)。ディレクトリを削除しないというのがコンセンサスのようです。
しかし、私がこの質問をした主な理由は、tar の絶対パスの扱いにあります。圧縮されるファイルへの相対パスを指定しなければならないので、適切に tar 化するためには親ディレクトリに変更しなければなりません。このような状況では、どんな種類の ‘rm’ コマンドを使用しても、潜在的に危険な可能性があります。そこで、私は tar 自体に削除を行わせることで、物事を単純化したいと考えていました。
例えば、バックアップするディレクトリ(つまり tar)がシェル変数として含まれているバックアップスクリプトを想像してみてください。シェル変数の値を誤って入力してしまった場合、結果として、最後に入っていたディレクトリのファイルが削除されてしまう可能性があります。