将文件的“创建日期”和“最后修改时间”属性更改为另一个文件的


40

我正在使用merge cap从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文件夹。但是由于将更改合并文件的创建日期,因此提取失败。有没有什么办法解决这一问题?

Answers:


77

您可以将touch命令与-r开关一起使用,以将另一个文件的属性应用于文件。

注意:在Unix中没有创建日期之类的东西,只有访问,修改和更改。请参阅标题为:获取给定文件的年龄的 U&L问答,以获取更多详细信息。

$ 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修改

我刚刚确认可以使用Fedora 19笔记本电脑来做到这一点,该笔记本电脑包括连接到Thecus N12000 NAS(使用CentOS 5.x的修改版)的1.16.3-2版本。

如上所述,我能够触摸文件,并且文件的工作如上所述。您的问题可能与正在使用的安装选项有关,可能会忽略对某些时间属性的跟踪,或者与以下错误之一有关:


@JishnuUNair-您可以检查一下如何安装Samba共享(有哪些选项)吗?通常,您可以从mount命令中获取这些内容,然后查找您正在访问的共享。只是一个猜测,但是可能使用gvfs作为FUSE文件系统来挂载。
slm

1
现在,许多文件系统都支持文件创建时间。对于ext4,您可以通过查看/更改它debugfs(尽管这需要root特权,在这里没有用)。看到这个问题-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中存储一些时间戳。这意味着它可以执行底层文件系统无法执行的操作-例如报告有效(可修改)的创建时间。抱歉,我没有找到任何有效的链接。
彼得

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
以某种方式在ubuntu 14.04 -a之前放置-m不会修改访问时间...在之后放置它,因此:touch -m -a -t....
Jadeye

5
-d time_string也许比-t以下命令容易:-d“ 2004-02-29 16:21:42”
yurenchen '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.