15

Unix ベースのシステムで、変更日時をあるファイル/ディレクトリから別のファイル/ディレクトリに「コピー」するにはどうすればよいですか?

4

6 に答える 6

29

いくつかのオプションがあります:

  • touch -t STAMP -m file時間を変更したい場合に使用します
  • cp --preserve=timestampsファイルをコピーしていて、時間を保存したい場合に使用します
  • touch -r「参照」ファイルに時刻を設定するために使用します
于 2013-03-03T00:19:59.117 に答える
3

後で便利になるように、次の行を .bashrc ファイルに追加します。

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

「source ~/.bashrc」を実行すると準備完了です。代わりにスクリプトを使用する場合は、最初と最後の行を削除してから、先頭に「#!/bin/sh」を追加します

于 2014-03-17T09:24:40.767 に答える
1

UNIXタイムスタンプ形式を使用してソースファイルのタイムスタンプを取得し、stat次を使用して宛先ファイルに伝播できますtouch -d

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

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

注:これは、プレフィックスをGNU coreutils使用してUNIXタイムスタンプをサポートする場合にのみ機能します@touch

于 2013-03-03T00:35:12.130 に答える
0

使用しtouchます。このような属性を設定できるオプションのフラグがいくつか含まれています。

于 2013-03-03T00:19:47.140 に答える
0

cp を使用している場合は、-p オプションを使用して mod 時間を保持します。cp-p

于 2013-03-03T00:29:36.477 に答える