Giả sử bạn có một tệp, file1mà bạn biết nên có các thuộc tính giống hệt với file2(bạn biết rằng file2có các thuộc tính chính xác).
$ 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: -
Một cách để đảm bảo rằng chúng khớp với nhau là đi và kiểm tra file2và áp dụng các thuộc tính theo cách thủ công:
$ chmod 644 file1
Điều này, tuy nhiên, cồng kềnh để tự động hóa và kịch bản. Sẽ dễ dàng hơn để có được các thuộc tính từ file2và áp dụng chúng vào file1lập trình.
$ 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-onlykhông tự làm bất cứ điều gì; nó cần được kết hợp với các cờ bảo quản thuộc tính khác. Từ 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được sử dụng ở trên, được ghi nhận là tương đương với --preserve=mode,ownership,timestamps. Trong nội bộ, bạn có thể nghĩ về điều này là "không sao chép dữ liệu" thay vì "chỉ sao chép các thuộc tính", đó là lý do tại sao bạn phải vượt qua --preservebất kể.