Linux:查找新添加的文件

时间:2015-11-04 12:04:34

标签: linux backup

我正在努力获得新的'将文件添加到Fedora系统。可以通过Windows Samba共享复制文件,并显示保留原始创建的时间戳。但是,因为它保留了这个时间戳,所以我在识别哪些文件是新添加到系统时遇到了问题。

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

特里

3 个答案:

答案 0 :(得分:1)

尝试使用find。像这样:

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$ 

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

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

示例,最新的100个包:$ rpm -qa --last | head -100 >> last-100-packages.txt

示例,创建一个文本文件:aJSON = {}; aJSON['properties'] = []; aJSON['options'] = []; aJSON['arrays'] = []; $('input').each(function () { if($(this).attr('name') != undefined) { if($(this).attr('name').indexOf('[]') > -1) { if(aJSON['arrays'][$(this).attr('name')] == undefined) { aJSON['arrays'][$(this).attr('name')] = []; } if($(this).is(':checked')) { aJSON['arrays'][$(this).attr('name')][$(this).attr('value')] = 1; } else { aJSON['arrays'][$(this).attr('name')][$(this).attr('value')] = 0; } } else { aJSON['properties'][$(this).attr('name')] = $(this).val(); } } }); $('select').each(function () { if($(this).attr('name') != undefined) { aJSON['properties'][$(this).attr('name')] = $(this).val(); } }); var array = getUrlVars(); aJSON['options']['type'] = array['type']; aJSON['options']['id'] = array['id']; aJSON['options']['view'] = pageSpecificVariables['view'];