SSH経由のTar - ローカルコンピュータで1行コマンドで除外を追加する方法

SSH経由のTar - ローカルコンピュータで1行コマンドで除外を追加する方法
ssh [email protected] tar cvpf - /root/1 > /home/user/arc.tar.gz

追加する必要がある

--exclude=/root/1/2

試しましたが動作しません。

ssh [email protected] tar cvpf - /root/1 > /home/user/arc.tar.gz --exclude=/root/1/2

答え1

GNUはtar何が起こっているのか正確に報告します。あなたが使用しているので、--excludeこれがあなたが使用しているバージョンであると仮定できますか?その場合は、次の内容をお読みください。

tar: The following options were used after non-option arguments.  These options are positional and affect only arguments that follow them.  Please, rearrange them properly.
tar: --exclude ‘/root/1/2’ has no effect
tar: Exiting with failure status due to previous errors

このエラーメッセージは関連性が高いため、あなたの質問に表示する必要があります。

解決策は、パラメータを正しく再配置することです。

tar cvpf - --exclude=/root/1/2 /root/1 > /home/user/arc.tar.gz 

ファイルに書き込んでいることがわかりました。つまり、gzipで圧縮されたデータが含まれていますが、実際にはそうではありません(tar圧縮された出力ストリームを作成するように指示していません)。

file /home/user/arc.tar.gz
/home/user/arc.tar.gz: POSIX tar archive (GNU)

完全な修正コマンドは次のとおりです。

ssh [email protected] tar czvpf - --exclude=/root/1/2 /root/1 >/home/user/arc.tar.gz 

file /home/user/arc.tar.gz
/home/user/arc.tar.gz: gzip compressed data, from Unix, original size modulo 2^32 …123456…

関連情報