プログラミングしているデバイスのファイルシステムをコピーしようとしています。私がインストールしていたファイルシステムがなぜ機能しなかったのかを解明しようとかなりの時間を費やした後、cp
が仕事を終わらせなかったことがわかりました。元のファイルシステムとdu -s
でコピーしたファイルシステムのサイズを確認するためにcp -r
を使用しましたが、それらは約150バイト異なることがわかりました。
シンボリックリンクまたはある種のカーネルオブジェクトが正しくコピーされていないことを教えてくれます。
フォルダ/ファイルシステムを正確にコピーすることは可能ですか?もしそうなら、私はそれについてどうやって行きますか?
別の一般的なオプションは、tar c source | (cd target && tar x )
を使用することです。 このlinuxdevcenter.comの記事。 を参照してください。
これを簡単な方法で試してください:
cp -a src target
man cp
から
-a, --archive
same as -dR --preserve=all
権利、シンボリックリンクを保存します...
ここでは、Linuxのすべてのコードを試しました。 Rsync は正しいものとして@seanmclによって提案され、他の人はownersおよび/または一部の特殊ファイルまたは拒否された結果。正確なコードは次のとおりです。
$ Sudo rsync -aczvAXHS --progress /var/www/html /var/www/backup
ディレクトリ名のみを使用することを忘れずに、スラッシュを入れないでください(/
)またはワイルドカード(/*
)sourceおよびtarget名の最後にある場合、ソースのすぐ下の隠しファイルはコピーされません。
ファイルをコピーする最も正確な方法は、cpio
を使用することです。
cd /path/to/source
find . -xdev -print0 | cpio -oa0V | (cd /path/to/target && cpio -imV)
本当に使いやすいわけではありませんが、これは非常に正確で、タイムスタンプ、所有者、権限、特殊ファイルを保持します。