如何在unix / linux中找到仅在今天创建而不是24小时内创建的所有文件
答案 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/$$
答案 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)
您可以使用find
和ls
来完成此操作:
find . -type f -exec ls -l {} \; | egrep "Aug 26";
它将找到此目录中的所有文件,显示有用的信息(-l
)并使用您想要的日期过滤行...它可能有点慢,但在某些情况下仍然有用。< / p>
答案 10 :(得分:-1)
这对我有用。列出5月30日在当前目录中创建的文件。
ls -lt | grep 'May 30'