簡體   English   中英

如何刪除Linux代碼文件中未使用的文件?

[英]How can I delete files that are not used in code files in linux?

我正在運行Fedora 18 linux,並且已經有一段時間從事PHP項目了。 我正在嘗試為Web應用程序的生產部署清理問題。 我有一個圖標圖像文件夾,隨着時間的推移,該文件夾已收集了我的代碼中不再使用的文件,這是因為我更改為代碼中的其他圖標,或者該圖像文件用於創建其他圖標。 我要做的是制作整個代碼項目的備份副本,並在命令行上結合使用findrmgrep進行HOPEFULLY,掃描圖像的整個文件夾,如果圖像未在任何地方使用在我的代碼文件中,將其刪除。 我在網上進行了一些搜索,發現在文件中找到一行文本並將其刪除的內容,但是卻沒有找到與我嘗試執行的內容完全相同的內容。

任何幫助表示贊賞...

這就是我的想法。 我整理了一個可以滿足我需求的shell腳本。 對於那些偶然發現此問題的人以及對我的解決方案提出批評的人,這里就是。 我選擇跳過在.xcf文件中找到的文件,因為這些文件僅用於創建許多圖標文件,而某些.png圖像會復制到這些.xcf文件中。

#!/bin/bash
FILES=/var/www/html/support_desk/templates/default/images/icons/*
codedir=/var/www/html/support_desk_branch/

for f in $FILES
do
  bn=$(basename $f)

  ext="${bn##*.}"

  echo "Processing $bn file..."

  if ! fgrep --quiet -R $bn $codedir; then
    if [ ext != 'xcf' ]; then
      rm $f
    fi
  fi

done

現在,只有PHP腳本文件中使用的圖像文件。 為了不丟失在mysql數據庫的表中定義的菜單中使用的任何圖標文件,我創建了該表數據的sql轉儲文件,並將其放在應用程序文件的路徑中在運行shell腳本之前。

查找未使用的圖標文件的最簡單方法是構建整個項目,然后查看圖標文件的訪問時間。 那些最近沒有讀過的內容(當然包括grep在內)將很容易顯示出來。

例如,假設您在一個小時前進行了備份,而在十分鍾前進行了構建,則訪問時間會有所不同。 然后

find . -amin +15 -type f

應該給出一個很好的“未使用”文件列表。 如果您確定該列表(確實做了備份,對嗎?),則可以清除未使用的文件:

find . -amin +15 -type f -exec rm -i {} \;

如果確實可以確定,則可以刪除-i選項。

暫無
暫無

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

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