回答:
file1
と同じ属性を持つ必要があることがわかっているファイルがあるとしますfile2
(file2
正しい属性があることがわかっています)。
$ stat file{1,2}
File: 'file1'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 1fh/31d Inode: 2326956 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/ chris) Gid: ( 1000/ chris)
Access: 2013-12-24 09:53:20.248720441 +0800
Modify: 2013-12-24 09:53:20.248720441 +0800
Change: 2013-12-24 09:53:31.011984772 +0800
Birth: -
File: 'file2'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 1fh/31d Inode: 2326957 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ chris) Gid: ( 1000/ chris)
Access: 2013-12-24 09:53:21.045382001 +0800
Modify: 2013-12-24 09:53:21.045382001 +0800
Change: 2013-12-24 09:53:21.045382001 +0800
Birth: -
それらが一致することを確認する1つの方法はfile2
、属性を確認して手動で適用することです。
$ chmod 644 file1
ただし、これは自動化とスクリプト化が面倒です。属性を取得file2
してfile1
プログラムで適用する方が簡単です。
$ cp --attributes-only --preserve file2 file1
$ stat file1
File: 'file1'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 1fh/31d Inode: 2326956 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ chris) Gid: ( 1000/ chris)
Access: 2013-12-24 09:53:21.045382001 +0800
Modify: 2013-12-24 09:53:21.045382001 +0800
Change: 2013-12-24 09:57:06.320604649 +0800
Birth: -
--attributes-only
単独では何もしません。他の属性保持フラグと組み合わせる必要があります。からinfo cp
:
--attributes-only
Copy only the specified attributes of the source file to the
destination. If the destination already exists, do not alter its
contents. See the `--preserve' option for controlling which
attributes to copy.
--preserve
は上記で使用され、と同等であると記載されてい--preserve=mode,ownership,timestamps
ます。内部的には、これを「属性のみをコピーする」ではなく「データをコピーしない」と考えることができます--preserve
。そのため、関係なく渡す必要があります。
スマートフォンをお持ちの場合、PCから離れているときにPCから音楽を選択できます。
$ cp -rn --attributes-only ~/Music smartphone/Music
PCから遠く離れている場合は、ディレクトリを削除して、将来的にコピーする必要があります。
$ cp -rn ~/Music smartphone/Music
選択した音楽と空のファイルを取得します。