[ Linux Note ] 如果目錄底下有特定資料需要保留,而其他資料要刪除的話,可 透過以下方式達成此需求。 原本的檔案結構:
  [root@mis FireTest]# tree /root/FireTest/   /root/FireTest/   |-- File-Test-001   | |-- OK   | `-- Test   |-- File-Test-012   | |-- OK   | `-- Test   |-- File-Test-123   | |-- OK   | `-- Test   `-- File-Test-123-003    |-- OK    `-- Test   12 directories, 0 files
想保留「File-Test-123*」的目錄,刪除其他目錄的話,使用 以下指令即可達成! 方法一,利用 Find + egrep -v (建議):
  rm -rf `find /root/FireTest/ | egrep -v '(File-Test-123*)'`
或者可以寫成這樣...
  rm -rf `find /root/FireTest/ | egrep -v '(File-Test-123|File-Test-123-003)'`
※ 切記! Find 目錄時,該目錄最後面一定要加上「/」,要不  然可是會發生災難,Find 的搜尋條件,會將整個目錄刪除!  假如不相信的話,可以勇敢的試試看。 ^0^/ 方法二,利用 ls + egrep -v: 在 /root/FireTest 目錄下,執行該指令...
  rm -rf `ls | egrep -v 'File-Test-123*'`
或者可以寫成這樣...
  rm -rf `ls | egrep -v '(File-Test-123|File-Test-123-003)'`
若怕刪除錯誤,可以先用 ls 檢查 egrep 取得的資料為何?
  [root@mis FireTest]# ls /root/FireTest/ | egrep -v 'File-Test-123*'   File-Test-001   File-Test-012
※ egrep -v ‧ 這個參數是用來過濾特定名稱,進而取得過濾值以外的資料。 這方法有點遜,順手寫一下筆記避免日後忘記!                           Paul
文章標籤
全站熱搜
創作者介紹
創作者 paul 的頭像
paul

Paul's Blog

paul 發表在 痞客邦 留言(0) 人氣(0)