[解決済み] ディレクトリをTarするが,完全な絶対パスはアーカイブに保存しない
質問
バックアップのシェルスクリプトの一部に、以下のようなコマンドがあります。
tar -cjf site1.bz2 /var/www/site1/
アーカイブの中身を一覧表示すると
tar -tf site1.bz2
var/www/site1/style.css
var/www/site1/index.html
var/www/site1/page2.html
var/www/site1/page3.html
var/www/site1/images/img1.png
var/www/site1/images/img2.png
var/www/site1/subdir/index.html
しかし、私はこの部分を削除したいのです。
/var/www/site1
アーカイブ内のディレクトリとファイル名から、抽出を簡素化し、無駄な一定のディレクトリ構造を避けるためです。万が一、バックアップしたウェブサイトを、ウェブデータが
/var/www
.
上記の例では、:
tar -tf site1.bz2
style.css
index.html
page2.html
page3.html
images/img1.png
images/img2.png
subdir/index.html
そのため、展開時にカレントディレクトリにファイルが展開され、その後展開されたファイルを移動する必要がなく、サブディレクトリの構造も保持されるようにしました。
すでにtarやバックアップに関する質問は
stackoverflow
やウェブ上の他の場所で、サブディレクトリ構造全体を削除する(フラット化)、または名前の最初の/を追加または削除するだけ(抽出時に具体的に何が変わるのか分かりません)、といった質問がほとんどで、それ以上はありません。
あちこちにある解決策やマニュアルを読んだ後、私は.を試してみました。
tar -cjf site1.bz2 -C . /var/www/site1/
tar -cjf site1.bz2 -C / /var/www/site1/
tar -cjf site1.bz2 -C /var/www/site1/ /var/www/site1/
tar -cjf site1.bz2 --strip-components=3 /var/www/site1/
しかし、どれも私が望むような働きはしませんでした。あるものは何もせず、あるものはサブディレクトリをアーカイブしなくなりました。
Cronで起動するバックアップシェルスクリプトの中なので、どのユーザーが実行しているのか、パスとカレントディレクトリが何なのか、よくわかりません。したがって、常に絶対パスを書くことがすべてに必要で、さらにスクリプト内の何かを壊さないためにカレントディレクトリを変更しないことが望ましいです(ウェブサイトのバックアップだけでなくデータベースもあり、それらをすべてFTPに送信するなどするから)。
どうすれば実現できますか?
私が-Cオプションの働きを誤解しているだけでしょうか?
解決方法は?
tar -cjf site1.tar.bz2 -C /var/www/site1 .
上記の例では、tar はディレクトリ
/var/www/site1
というオプションがあるため、作業を行う前に
-C /var/www/site1
が指定されました。
から
man tar
:
OTHER OPTIONS
-C, --directory DIR
change to directory DIR
関連
-
deepinシステムのバージョン番号を見るには?deepinシステムのバージョン情報を見るコツ
-
Linux Mintシステムでプログラムをアンインストールするには? Linux で不要なアプリケーションをアンインストールするためのヒント
-
Linux Mint システムの背景画像を変更する方法は? Linuxでデスクトップの背景を変更するためのヒント
-
deepin20のデフォルトブラウザを設定するには?deepinにデフォルトブラウザを追加するためのヒント
-
ディープインシステムの画面解像度を設定する方法は?ディープインシステムの解像度を設定する方法
-
[解決済み】 "find: paths must priore expression:" カレントディレクトリのファイルも見つける再帰的検索を指定するには?
-
floor'への未定義の参照/`&'への未定義の参照
-
[解決済み] エクスポートされた環境変数を削除する方法を教えてください。
-
[解決済み] POSIX」の意味を教えてください。
-
[解決済み] ファイルやフォルダのディレクトリを、ディレクトリ自体を含めずにtarで圧縮するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
deepin linuxでroot権限に切り替えるには?Deepinでrootに切り替えるためのヒント
-
Kali Linuxのマウスを左利き用に設定する方法は?Linuxマウス左利き操作選択方法
-
[解決済み] Linuxでデータファイルから最初の列(実際には行名)を削除する方法は?
-
[解決済み] cronは内部でどのようにジョブをスケジューリングしているのですか?
-
[解決済み] mkdirのオプションが明確でない
-
[解決済み] 複数のPDFファイルを1つのPDFに結合/変換する【終了】。
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?
-
[解決済み] ディレクトリへのシンボリックリンクを削除する
-
[解決済み] Linux/Unixで$PATHを永久に設定する方法 [終了しました].
-
[解決済み] Unixのfindで先頭の"./"を削除するには?