
我工作的公司有一個共享網路驅動器。在上面,我們有每個部門的資料夾,以及每個員工的資料夾。對於多年前離開的員工來說,有大量的資料夾,我確信這同樣適用於部門樹中的子資料夾。
我已經運行了磁碟使用情況掃描,並且我有合理的懷疑我們可以保存負載透過清除過時的資料來節省磁碟空間。但是,了解上次修改的磁碟使用情況是一個有趣的挑戰,我無法對此做出回應。
有任何想法嗎?如何取得按最近修改資料夾(或其中的檔案)的日期排序的資料夾清單(在不同的樹層級)?
更新:這是針對 Linux 的,但沒有「generic linux」的標籤(只有 Mint、Kali 和其他一些)。
答案1
開啟檔案總管並導航到共用資料夾。
按下F3鍵盤上的 鍵,您將在搜尋欄位下拉式選單中看到,按一下下方
Date modified:
並Add a search filter
根據需要選擇時間篩選器。您可以從預先定義的模式中選擇搜尋條件,或在搜尋欄位中輸入日期範圍:
datemodified:1/1/2000 .. 8/22/2018
如果您需要查找某個日期後未修改的檔案/資料夾,您可以<
在日期前面使用字元:
datemodified:<1/1/2010
它會發現遞迴地早於 1/1/2010 的所有文件和資料夾
當資源管理器停止搜尋時,切換視圖Details
並按列Date modified
對找到的檔案和資料夾進行排序,並刪除您認為不再使用的檔案和資料夾。
您也可以使用搜尋篩選器按日期accessed
或created
日期進行搜索,如下所示:
datecreated:
dateaccessed:
如果您想自動刪除舊內容,可以使用控制台實用程式:forfiles
若要從資料夾中遞歸刪除一年前及以後未修改的資料夾/檔案C:\SomeFolder
:
forfiles /s /p "C:\SomeFolder" /d -365 /c "cmd /c del @path"
如果您只想列出舊文件/資料夾而不是刪除它們,您可以使用:
forfiles /s /p "C:\SomeFolder" /d -365 /c "cmd /c echo @path [@fdate]"
用於forfiles /?
獲取有關 Windows 附帶的此實用程式的更多信息
您甚至可以建立一個批次檔並透過任務排程器執行它以自動刪除舊內容。
PS 如果你想使用 Linux 查找並刪除舊目錄/文件,則更簡單:
列出舊內容:
#!/bin/sh
srcDir='/Path/to/share/'
daysAgo='360'
find "${srcDir}" \( -type f -o -type d \) -a -mtime +"${daysAgo}"
若要刪除舊內容:
#!/bin/sh
srcDir='/Path/to/share/'
daysAgo='360'
find "${srcDir}" \( -type f -o -type d \) -a -mtime +"${daysAgo}" -exec rm -fd '{}' \;
如果你想遞歸rm -fdr
地刪除目錄,請使用rm -fd