SSH経由でリモートWebサーバーに接続した後、CentOSリモートWebサーバーで次のコマンドを実行しました。
tar -vcf remote_name.tar /home/remote_name/public_html
私のローカルシステム(Debianベース)で次のコマンドを実行します。
user@linux-mx21:/var/www/html
$ wget https://example.com/remote_name.tar
$ mkdir remote_name
$ tar -vxf remote_name.tar --directory ./remote_name
すべてが大丈夫ですが、私はdir構造の結果が次のようになることを望んでいません:
/var/www/html/remote_name/home/remote_name/public_html/
(public_filesとdirs_extracted_here)。
代わりに、結果が次のようになります。
/var/www/html/remote_name/
新しい場所の結果ファイル、
/var/www/html/remote_name
親ディレクトリ構造を除いて元の場所のミラーになります。
私のコマンドの結果は上記のとおりですので、現在存在しているファイルを/var/www/html/remote_name/home/remote_name/public_html
自分の好きな場所に移動する必要があります/var/www/html/remote_name/
。このステップをスキップしてコマンドを改善したいと思います。
リモートでSSHを使用するときは、必要に応じてコマンドにw / argsを設定できると思いますtar
が、目的の効果を得るための正しいパラメータがわかりません。
助けてくれてありがとう!
答え1
tar
chdir
次のコマンドを使用してディレクトリを入力できますC
。
$ mkdir -p a/b/public_html
$ touch a/b/public_html/index.html
$ tar vCcf a/b/public_html remote_name.tar .
a .
a ./index.html
これは現在のディレクトリに基づいてtarballを作成します
a/b/public_html
。しかし、これは一般的ではなく失礼と見なすことができます。他の人がtarballを拡張すると、デフォルトではホームディレクトリ内のすべてのファイルが含まれるためです。あなたがタールボールを使う唯一の人なら、これは問題ではありません。
より一般的には、tarball は 1 レベルアップグレードされるか、次のようになります。
$ rm remote_name.tar
$ tar vCcf a/b remote_name.tar public_html
a public_html
a public_html/index.html
次に、拡張側でchdir
親コマンドで適切な操作を実行する必要があります。
cd some/dir && tar xf remote_name.tar
またはtar
コマンド自体内で
tar xCf some/dir remote_name.tar
正確な内容は、あまり一般的でないディレクトリであるか、より一般的な親ディレクトリであるかによって、some/dir
tarballの作成方法によって異なります。.