web-dev-qa-db-ja.com

ファイルの「作成日」と「最終更新」の属性を別のファイルの属性に変更する

マージキャップを使用して、15個のファイルからマージpcapファイルを作成しています。マージされたファイルについては、15個のファイルの最初のファイルの名前に変更しました。しかし、「作成日」や「最終更新日」などのマージされたファイルの属性を最初の属性に変更したいと思います。とにかくこれを行うにはありますか?

FILES_dcn=($(find  $dir_dcn -maxdepth 1 -type f -name "*.pcap"  -print0 | xargs -0 ls -lt | tail -15 | awk '{print $9}'))
TAG1_dcn=$(basename "${FILES_dcn[14]}" | sed 's/.pcap//')
mergecap -w  "${dir_dcn}"/merge_dcn.pcap "${FILES_dcn[@]}"
mv  "${dir_dcn}"/merge_dcn.pcap  "${dir_dcn}"/"${TAG1_dcn}".pcap

私は、Sambaサーバー(Ubuntu)を介してマージされたファイルにアクセスしようとします。抽出機能がファイルにアクセスして自動でDフォルダーにファイルを抽出できるようにします。ただし、マージされたファイルの作成日が変更されるため、抽出は失敗します。とにかくこれを修正する方法はありますか?

43
Jishnu U Nair

touchコマンドを-rスイッチと共に使用して、別のファイルの属性をファイルに適用できます。

注:Unixには作成日などはなく、アクセス、変更、変更のみが可能です。詳細については、次のU&L Q&Aを参照してください: get age of given file .

$ touch -r goldenfile newfile

例として、任意のタイムスタンプで作成されたgoldenfileを次に示します。

$ touch -d 20120101 goldenfile
$ ls -l goldenfile 
-rw-rw-r--. 1 saml saml 0 Jan  1  2012 goldenfile

次に、いくつかの新しいファイルを作成します。

$ touch newfile
$ ls -l newfile 
-rw-rw-r--. 1 saml saml 0 Mar  7 09:06 newfile

次に、goldenfileの属性をnewfileに適用します。

$ touch -r goldenfile newfile 
$ ls -l goldenfile newfile
-rw-rw-r--. 1 saml saml 0 Jan  1  2012 newfile
-rw-rw-r--. 1 saml saml 0 Jan  1  2012 goldenfile

現在、newfileは同じ属性を持っています。

Samba経由で変更

Thecus N12000に接続されたバージョン1.16.3-2を含むFedora 19ラップトップを使用してこれを実行できることを確認しましたNAS(CentOS 5.xの修正バージョンを使用) 。

上記のようにファイルに触れることができ、説明したとおりに機能しました。あなたの問題は、使用されているマウントオプションの問題である可能性があります。これは、特定の時間属性の追跡を省略している可能性があるか、またはこれらのバグのいずれかに関連している可能性があります。

83
slm

最も簡単な方法-アクセスされた変更は同じになります:

touch -a -m -t 201512180130.09 fileName.ext

どこ:

-a = accessed
-m = modified
-t  = timestamp - use [[CC]YY]MMDDhhmm[.ss] time format

NOWを使用する場合は、tとタイムスタンプをドロップするだけです

それらがすべて同じであることを確認するには:stat fileName.ext

参照: タッチマン

41
Jadeye