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