파일의 "Date Created"및 "Last Modified"속성을 다른 파일로 변경


40

15 개의 파일에서 merge pcap 파일을 만들기 위해 merge cap을 사용하고 있습니다. 병합 된 파일의 이름을 15 개 파일 중 첫 번째 파일 이름으로 변경했습니다. 그러나 "Date Created"및 "Last Modified"와 같은 병합 된 파일의 속성을 첫 번째 속성으로 변경하고 싶습니다. 어쨌든 이것을 할 수 있습니까?

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

삼바 서버 (우분투)를 통해 병합 된 파일에 액세스하려고합니다. 추출기 기능이 자동으로 파일을 D 폴더로 추출 할 수 있도록합니다. 그러나 병합 된 파일에 대해 작성된 날짜가 변경되면 추출에 실패합니다. 어쨌든 이것을 고칠 수 있습니까?

답변:


77

스위치 touch와 함께 명령을 사용하여 -r다른 파일의 속성을 파일에 적용 할 수 있습니다.

참고 : Unix의 작성 날짜와 같은 것은 없으며 액세스, 수정 및 변경 만 있습니다. 제목이 U & L Q & A를 참조하십시오 : 주어진 파일의 나이를 얻을 자세한 내용은.

$ 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동일한 속성을 갖습니다.

삼바를 통해 수정

방금 Thecus N12000 NAS에 연결된 버전 1.16.3-2가 포함 된 Fedora 19 랩톱을 사용하여이 작업을 수행 할 수 있음을 확인했습니다 (CentOS 5.x의 수정 된 버전 사용).

위에서 언급 한대로 파일을 만질 수 있었고 설명대로 작동했습니다. 특정 시간 속성의 추적을 생략하거나 사용중인 장착 옵션 중 하나에 문제가 있거나 아마도 다음 버그 중 하나와 관련이있을 수 있습니다.


@JishnuUNair-Samba 공유가 어떻게 마운트되는지 확인할 수 있습니까? 일반적으로 이러한 mount명령을 명령 에서 얻은 다음 액세스중인 공유를 찾을 수 있습니다. 추측하지만 gvfs를 FUSE 파일 시스템으로 사용합니다.
slm

1
많은 파일 시스템이 이제 파일 작성 시간을 지원합니다. ext4의 경우 debugfs루트 권한이 필요하지만 여기서는 사용되지 않지만이를 통해 보거나 변경할 수 있습니다 . 이 질문보기 -unix.stackexchange.com/questions/50177/birth-is-empty-on-ext4
Graeme

@Graeme-예 방금 stap : unix.stackexchange.com/questions/91197/… 을 사용하여 비슷한 방법을 참조했습니다 .
slm

1
Linux는 생성 시간을 지원하지 않지만 Samba 공유는 가능합니다. 설정 방법 (및 파일 시스템의 xattr 지원)에 따라 Samba는 Linux xattrs에 타임 스탬프를 저장할 수 있습니다. 즉, 기본 파일 시스템이 유효한 (수정 가능한) 작성 시간을보고하는 것처럼 수행 할 수없는 작업을 수행 할 수 있습니다. 죄송합니다, 이것이 어떻게 작동하는지에 대한 좋은 링크를 찾지 못했습니다.
Peter

1
실제로 대부분의 Linux 파일 시스템 (예 : ext4)은 현재 생성 날짜를 지원하며 Linux 4.11은이 statx()를 검색해야합니다. 드디어.
Jez

36

가장 쉬운 방법-수정 된 액세스는 동일합니다.

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

참조 : 터치 맨


5
어떻게 든 우분투 14.04 -a전에 -m넣어도 액세스 시간이 수정되지 않습니다 ... 후에 넣습니다.touch -m -a -t....
Jadeye

5
-d time_string어쩌면 쉽게 이상 -t: -d "2004년 2월 29일 16시 21분 42초"
yurenchen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.