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

时间:2009-04-29 06:21:22

标签: linux unix

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

11 个答案:

答案 0 :(得分:50)

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

find <path> -daystart -ctime 0 -print

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

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

答案 1 :(得分:33)

find . -mtime -1 -type f -print

答案 2 :(得分:17)

在当前目录及其子目录中查找仅在今天修改的所有文件(仅限自上午开始,即上午12点):

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

Source

答案 3 :(得分:6)

我以某种频率使用它:

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

答案 4 :(得分:2)

使用ls或find来获取今天创建的所有文件。

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

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

答案 5 :(得分:2)

浏览完可能的帖子后,我发现了最有效的文章

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

这仅打印文件名,例如 abc.txt不是/path/tofolder/abc.txt

还可以玩耍或自定义-mtime -1

答案 6 :(得分:1)

你做不到。 @ Alnitak的答案是你能做的最好的,在你检查的时间段内给你所有新文件,但是-ctime实际上检查了文件inode的修改时间(文件)描述符),因此也将捕获在最后一天重命名的任何旧文件(例如)。

答案 7 :(得分:0)

请记住,8月到26日之间有2个空格。否则,你的查找命令将不起作用。

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

答案 8 :(得分:0)

如果你做错了rsync到错误的目录,上面的建议可以找到新文件,但对我来说,最简单的是连接SFTP客户端,比如Transmit,然后按日期排序并删除。 / p>

答案 9 :(得分:-1)

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

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

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

答案 10 :(得分:-1)

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

ls -lt | grep 'May 30'