1

B のタイムスタンプを変更せずにファイル A をディレクトリ B にコピーする方法はありますか? はいの場合、それは何ですか?

編集:

より大きな目標: 1 年以上前に書いたコードを掘り下げています。私は、将来の自分を常に混乱させる何かをしたことがあることに気づきました。落とし穴を説明する README ファイルをそこに追加したいと思います。しかし、そのディレクトリで最後に作業した時間を保存したいと思います。

ついに:

両方の答えをありがとう。私は最終的に「touch -r B/newestoldfile B」を実行しましたが、これは私の目的には十分でした。誰かが指摘したように、それはすべての状況で私の質問に対する正確な答えではありません. 私は両方の答えに賛成票を投じましたが、受け入れられたものとして選ばなければなりませんでした。-rオプションについて簡単に言及したものを選択しました:)

4

3 に答える 3

3

Bディレクトリの古いmtimeをキャプチャします。次に、ファイルを移動し、touchコマンドを使用して、Bディレクトリのmtimeを保存した古いmtimeで書き換えます。

old_mtime=$(stat -c%Y B)
mv A B
touch -d"$(date --date="@$old_time")" B

エポックからの秒数で@$old_time表す日付を作成するために使用します。これが私たちに与えられるものです。$old_timestat

于 2013-01-09T22:26:39.393 に答える
2

コピーする前にディレクトリからタイムスタンプを取得し、コマンドをstat -c %Y使用してコピー後にタイムスタンプを変更できます。touch

タイムスタンプをディレクトリ A から B にコピーするだけの場合:

touch -r A B
于 2013-01-09T22:20:46.540 に答える
1

コーディングするときは、GitMercurialSubversionなどのソース管理システムを使用する必要があります。プロジェクトのファイルのリポジトリを作成し、ファイルを編集し、変更内容に関するコメントを付けてバージョンを登録し、最終的に編集したファイルをプロジェクトにマージし、分散システムを使用してクラウドでホストすることができます。

あなたが言及した方法を参照して、他の人はすでに正しく答えましたが、将来的にも使用する方がよい別の解決策を使用して、より良い提案をしたいと思いました。

于 2013-01-09T22:45:15.180 に答える