Giả sử bạn có một tệp, file1
mà 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 file2
có 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 file2
và á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ừ file2
và áp dụng chúng vào file1
lậ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-only
khô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 --preserve
bất kể.