簡體   English   中英

Linux-如何查找最近12個小時內未查找命令更改的文件

[英]Linux - How to find files changed in last 12 hours without find command

我需要查找最近12個小時內修改過的文件。 但是,目錄很大,因此使用通常的find命令花費的時間太長。

有人有更快的想法嗎? 我在想類似列出文件的方法,然后使用head獲得前20名,然后僅檢查那些文件。 但是我不確定。

有什么幫助嗎?

更新:感謝所選答案的幫助,我們發現您實際上可以在不使用find命令的情況下找到文件。 技巧是給文件名加上時間戳,然后使用以下代碼獲取最新的文件名:

ls -1 /directory/files*.txt | sort -nr | head -1

文件修改時間存儲在其inode中。 因此,無論使用什么命令,都必須讀取該目錄中所有文件的inode。 您可以創建自己的腳本來檢查mtime,但不會更快。

列出目錄內容(僅文件名)是非常快的,請嘗試使用ls -1ls減一個 ),但是使用諸如mtime之類的文件屬性列出目錄速度很慢: ls -lls減去小L )。

文件系統以“隨機”順序讀取目錄中的文件列表(該順序取決於許多因素,但是是靜態的)。 因此,您不能使用在X個文件后停止等操作。 ls -t列出了按mtime排序的文件,但是它必須讀取所有文件的mtime才能對其進行排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM