2013-03-03 19 views

Trả lời

14

Bạn có một số tùy chọn:

  • Sử dụng touch -t STAMP -m file nếu bạn muốn thay đổi thời gian
  • Sử dụng cp --preserve=timestamps nếu bạn đang sao chép các tập tin và muốn giữ thời gian
  • Sử dụng touch -r để thiết lập thời gian tới tệp "tham chiếu"
+1

Điều này cho tôi biết cách áp dụng dấu cho một tệp cụ thể và sao chép tệp và giữ dấu thời gian. Nhưng nó không trả lời câu hỏi ban đầu của tôi về cách sao chép dấu thời gian từ một tệp có sẵn từ trước sang một tệp có sẵn khác ... – user2015453

+1

@ user2015453 Tôi đã chỉnh sửa câu trả lời của mình, tôi đã nhớ về '-r' – cnicutar

0

Sử dụng touch; nó chứa một số cờ tùy chọn cho phép bạn thiết lập các thuộc tính như vậy.

0

Nếu bạn đang sử dụng cp, hãy sử dụng tùy chọn -p để đặt trước đã mod lần. cp -p

1

Bạn có thể lấy dấu thời gian của tập tin nguồn sử dụng stat ở định dạng timestamp unix và sau đó lan truyền nó vào file đích bằng touch -d

src_file=/foo/bar 
dst_file=/bar/baz 

touch -d @$(stat -c "%Y" "$src_file") "$dst_file" 

Chú ý: Đây sẽ chỉ làm việc với GNU coreutils mà hỗ trợ unix timestamp sử dụng tiền tố @ với touch

1

Để thuận tiện sau này, đưa dòng sau trong file .bashrc của bạn:

cptimestamp() { 
    if [ -z $2 ] ; then 
    echo "usage: cptimestamp <sourcefile> <destfile>" 
    exit 
    fi 
    touch -d @$(stat -c "%Y" "$1") "$2" 
} 

Thực thi "source ~/.bashrc" và bạn đã sẵn sàng. Thay vào đó, nếu bạn thích tập lệnh, hãy xóa dòng đầu tiên và cuối cùng - sau đó thêm "#!/Bin/sh"

Các vấn đề liên quan