Linux でファイルをコピーするときに、Windows ファイル属性を保持するにはどうすればよいですか?

Linux でファイルをコピーするときに、Windows ファイル属性を保持するにはどうすればよいですか?

Linux マシン上で実行されるカスタム Bash スクリプトを使用して、FAT32 形式の USB ドライブを大量に複製しています。

「隠しファイル」などの Windows ファイル属性を保持する必要があります。

私はrsync(または新しいバージョンddでは)を使用して、安定性の向上と帯域幅の最適な使用のために I/O 同期を強制します。findmkdir

一部のファイル属性を保持すると言われている の およびスイッチを-X盲目的に試してみましたが、Windows のファイル属性では機能しないようです。-Arsync

Linux 環境で Windows ファイル属性を読み書きする方法はありますか?

もっと簡単な方法がない場合は、コピーしてから適用することもできます。

ddソース ファイル システム全体をコピーしたくはありません。これは、特に数百のドライブに書き込む必要がある場合に、最適化が不十分になるためです。ドライブの容量が 16 GB で、ファイルが数 GB しかない場合もあり、愚かな人ddは 16 GB すべてをコピーすることになり、実稼働環境でこれを機能させるには時間がかかりすぎます。

Web で検索してみましたが、Linux 拡張属性は Windows ファイル属性とは関係がないようです。また、この情報を読み書きする方法 (またはファイルと一緒にコピーする方法) も見つかりませんでした。

答え1

これに対処する方法はいくつか考えられます。

1つ目はMツールファイルをコピーします。これを機能させるには、「ドライブ」を定義する(ソースドライブはA:、ターゲットはB:とします)その後、属性とタイムスタンプを保持したまますべてをコピーできるはずです。

mcopy -s -p -m a: b:

(未テスト)。

2 つ目は、 を使用して属性を後処理することですfatattr(ほとんどのディストリビューションで使用可能)。これはマウントされたファイル システムを処理するので、現在と同じ方法でファイル システムをコピーし、 を使用してすべてのソース ファイルのすべての FAT 属性をリストし、それを解析してターゲット ファイルに適切な属性を設定するようにfatattr指示します。fatattr

関連情報