繁体   English   中英

Linux:查找新添加的文件

[英]Linux: Finding Newly Added Files

我正在尝试获取“新添加”文件到Fedora系统的备份。 可以通过Windows Samba共享复制文件,并且文件似乎保留原始创建的时间戳。 但是,因为它保留了此时间戳,所以在识别哪些文件是新添加到系统时遇到了问题。

当前,我能想到的唯一方法是在特定时间获取系统上所有文件的主列表快照。 然后,当我执行备份时,我会将先前的快照与当前的快照进行比较。 它会检测从系统中删除的文件,但似乎过多,我想必须有一种更简便的方法来备份新添加的文件。

特里

尝试使用查找。 像这样:

find . -ctime -10

从当前目录开始,这将为您提供文件和目录的列表,该目录的状态在最近10天内已更改。

例:

我的下载目录如下所示:

kobus@akira:~/Downloads$ ll
total 2025284
drwxr-xr-x  4 kobus kobus       4096 Nov  4 11:25 ./
drwxr-xr-x 41 kobus kobus       4096 Oct 30 09:26 ../
-rw-rw-r--  1 kobus kobus    8042383 Oct 28 14:08 apache-maven-3.3.3- bin.tar.gz
drwxrwxr-x  2 kobus kobus       4096 Oct 14 09:55 ELKImages/
-rw-rw-r--  1 kobus kobus 1469054976 Nov  4 11:25 Fedora-Live-Workstation-x86_64-23-10.iso
-rw-------  1 kobus kobus     351004 Sep 21 14:07 GrokConstructor-master.zip
drwxrwxr-x 11 kobus kobus       4096 Jul 11  2014 jboss-eap-6.3/
-rw-rw-r--  1 kobus kobus  183399393 Oct 19 16:26 jboss-eap-6.3.0-installer.jar
-rw-rw-r--  1 kobus kobus  158177216 Oct 19 16:26 jboss-eap-6.3.0.zip
-rw-rw-r--  1 kobus kobus   71680110 Oct 13 13:51 jre-8u60-linux-x64.tar.gz
-rw-r--r--  1 kobus kobus       4680 Oct 12 12:34 nginx-release-centos-7-0.el7.ngx.noarch.rpm
-rw-r--r--  1 kobus kobus    3479765 Oct 12 14:22 ngx_openresty-1.9.3.1.tar.gz
-rw-------  1 kobus kobus   16874455 Sep 15 16:49 Oracle_VM_VirtualBox_Extension_Pack-5.0.4-102546.vbox-extpack
-rw-r--r--  1 kobus kobus    7505310 Oct  6 10:29 sublime_text_3_build_3083_x64.tar.bz2
-rw-------  1 kobus kobus   41467245 Sep  7 10:37 tagspaces-1.12.0-linux64.tar.gz
-rw-rw-r--  1 kobus kobus   42658300 Nov  4 10:14 tagspaces-2.0.1-linux64.tar.gz
-rw-------  1 kobus kobus   70046668 Sep 15 16:49 VirtualBox-5.0-5.0.4_102546_el7-1.x86_64.rpm

这是查找结果返回的内容:

kobus@akira:~/Downloads$ find . -ctime -10
.
./tagspaces-2.0.1-linux64.tar.gz
./apache-maven-3.3.3-bin.tar.gz
./Fedora-Live-Workstation-x86_64-23-10.iso
kobus@akira:~/Downloads$ 

大多数unice没有文件创建时间的概念。 您不能使ls打印它,因为没有记录信息。 如果需要创建时间,请使用版本控制系统:将创建时间定义为签入时间。

如果您的Unix变体有创建时间,请查看其文档。 例如,在Mac OS X(我知道的唯一一个例子)中,使用ls -tU。 Windows还存储了创建时间,但是它并不总是暴露于unix实用程序的端口,例如Cygwin ls没有显示它的选项。 stat实用程序可以显示创建时间,在GNU实用程序中称为“出生时间”,因此在Cygwin下,您可以使用stat -c'%W%n'*显示按出生时间排序的文件。 排序-k1n。

请注意,ctime(ls -lc)不是文件创建时间,而是inode更改时间。 每当有关文件的任何内容(内容或元数据)发生任何更改(除了仅在读取文件时ctime不会更新(即使atime已更新))时,inode更改时间都会更新。 特别是,ctime总是比mtime(文件内容修改时间)更新,除非将mtime明确设置为将来的日期。


“新添加的文件,Fedora”:以下示例将显示一个包含日期和时间的列表。

示例,所有已安装的软件包: $ rpm -qa --last

例如,最新的100个软件包: $ rpm -qa --last | head -100 $ rpm -qa --last | head -100

例如,创建一个文本文件: $ rpm -qa --last | head -100 >> last-100-packages.txt $ rpm -qa --last | head -100 >> last-100-packages.txt


暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM