如何找到今天在 Unix/Linux 中创建的所有文件?

如何在 unix/linux 中找到仅在今天创建而不是在24小时内创建的所有文件

174450 次浏览

要在工作目录及其子目录中找到所有今天才修改的文件(从一天开始,即上午12点) :

touch -t `date +%m%d0000` /tmp/$$
find . -type f -newer /tmp/$$
rm /tmp/$$

来源

在我的 Fedora 10系统上,使用 findutils-4.4.0-1.fc10.i386:

find <path> -daystart -ctime 0 -print

-daystart标志告诉它从今天开始计算,而不是从24小时前开始计算。

但是请注意,这实际上将列出在最后一天修改的 或者创建的文件。find没有查看文件真实创建日期的选项。

find . -mtime -1 -type f -print

您可以使用 findls来完成以下操作:

find . -type f -exec ls -l {} \; |  egrep "Aug 26";

它会找到这个目录中的所有文件,显示有用的信息(-l) ,并用您想要的日期过滤行... ... 它可能有点慢,但在某些情况下仍然有用。

请记住,在8月和26日之间有2个空格。否则您的 find 命令将无法工作。

find . -type f -exec ls -l {} \; |  egrep "Aug 26";

如果你不小心将 rsync 同步到了错误的目录,上面的建议可以帮助你找到新的文件,但是对我来说,最简单的方法是连接到一个 SFTP 客户端,比如 Transmit,然后根据日期进行排序和删除。

我经常用这个词:

$ ls -altrh --time-style=+%D | grep $(date +%D)

使用 ls 或 find 包含今天创建的所有文件。

使用 ls: ls -ltr | grep "$(date '+%b %e')"

使用 find: cd $YOUR_DIRECTORY; find . -ls 2>/dev/null| grep "$(date '+%b %e')"

在浏览了许多帖子之后,我发现了最有效的一个

find $file_path -type f -name "*.txt" -mtime -1 -printf "%f\n"

这样只打印文件名 不是 /path/tofolder/abc.txt

也可以玩弄或定制与 -mtime -1

这对我很有用。列出5月30日在工作目录中创建的文件。

ls -lt | grep 'May 30'
 find ./ -maxdepth 1 -type f -execdir basename '{}' ';' | grep `date +'%Y%m%d'`

要在24小时内获取文件,请执行以下命令:

find . -type f -mtime 1 -exec ls -l {} \;

要获取今天创建的文件,执行以下命令:

find . -type f -mtime -1 -exec ls -l {} \;

获取在 n 天之前创建的文件,其中 + 2是在2天之前在下面的命令中创建的文件:

find . -type f -mtime +2 -exec ls -l {} \;