題 如何在命令行上刪除超過7天的文件夾和文件?


我想刪除文件夾,並且使用命令行創建的文件超過7天。


4
2017-12-11 05:07


起源


在哪個OS(Win,OSx Linux?我假設Linux但你知道他們對假設的看法。 - Steve Robillard
sevenforums.com/tutorials/...
我不確定你是如何做7天的部分,但如果你使用OS X或Linux你可以使用命令:rm -rf / path / to / the / folder - nosedive25
wa c mahmoud。你想創建一個在第7天之前刪除文件的腳本嗎?以及在哪個操作系統?!
在Windows中,我要刪除的文件夾名為:200110001,20110002 ..等等,只是文件夾以“2011 ...”開頭我要刪除


答案:


* NIX

如果你正在使用* nix並且擁有  這可以做到這一點:

find /the/directory/containing/files/to/delete -mtime +7 -exec rm -r {} \;

國旗 -mtime 是檢查找到的文件的修改時間戳。如果它在上面 7*24h 前,
它會執行 rm /path/to/file

從聯機幫助頁 find

-mtime n  
    File's  data was last modified n*24 hours ago.  See the comments  
    for -atime to understand how rounding affects the interpretation  
    of file modification times.  

WINDOWS XP和VISTA

我從不在Windows上工作,雖然我很好奇在MS-DOS環境中看到什麼命令等同於上面的命令。我發現 批處理文件,用於刪除超過N天的文件 這裡是stackoverflow。

相關命令(從先前鏈接的線程複製+粘貼):

forfiles -p "C:\what\ever" -s -m *.* -d <number of days> -c "cmd /c del @path"

WINDOWS 7的

語法已更改一點,因此更新的命令是

forfiles -p "C:\what\ever" -s -m *.* /D -<number of days> /C "cmd /c del @path"

12
2017-12-11 05:17



如果我沒記錯的話,Rm需要-r標誌來刪除目錄。 (UNIX)
@Jon哦,我沒有註意到要刪除目錄和文件,我馬上就會改變我的帖子。感謝您指出了這一點!
而且為了確保它還應該使用-f標誌,因此-rf將始終強制刪除。 (忘了一個)。
@Jon我故意放棄了這個,說實話,比抱歉更安全! ;)
refp,非常感謝您的回答,“forfiles”將在Windows中運行?


如果你需要在一個非常大的文件樹上處理空間限制問題(在我的情況下很多perforce分支),有時候 在跑步時被絞死 查找和刪除過程 -

這是我每天安排的腳本 查找具有特定文件的所有目錄 (“ChangesLog.txt”), 然後 排序所有目錄 發現是的 更老 2天,並刪除第一個匹配的目錄(每個計劃可能有一個新的匹配):

bash -c "echo @echo Creating Cleanup_Branch.cmd on %COMPUTERNAME% - %~dp0 > Cleanup_Branch.cmd"
bash -c "echo -n 'bash -c \"find ' >> Cleanup_Branch.cmd"
rm -f dirToDelete.txt
rem cd. > dirToDelete.txt 
bash -c "find .. -maxdepth 9 -regex ".+ChangesLog.txt" -exec echo {} >> dirToDelete.txt \; & pid=$!; sleep 100; kill $pid "
sed -e 's/\(.*\)\/.*/\1/' -e 's/^./"&/;s/.$/&" /' dirToDelete.txt | tr '\n' ' ' >> Cleanup_Branch.cmd
bash -c "echo -n '-maxdepth 0 -type d -mtime +2 | xargs -r ls -trd | head -n1 | xargs -t rm -Rf' >> Cleanup_Branch.cmd"
bash -c 'echo -n \" >> Cleanup_Branch.cmd'
call Cleanup_Branch.cmd

注意要求:

  1. 僅刪除那些帶有“ChangesLog.txt”的目錄,因為不應刪除其他舊目錄。
  2. 調用OS命令 cygwin直接,因為否則它使用Windows默認命令。
  3. 收集目錄以刪除到外部文本文件中,以便 保存查找結果,因為有時查找過程已被絞死。
  4. 設置一個 通過使用100秒後被殺死的後台進程超時到查找進程
  5. 對於刪除優先級,首先對最舊的目錄進行排序。

0