作者 主題: 有沒有可以一次刪除多檔的指令 或 shell script寫法  (閱讀 3041 次)

0 會員 與 1 訪客 正在閱讀本文。

elf128129

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
小弟是初入linux的小菜鳥,
在鳥哥的網站自習linux,
剛好學習到 <第十三章、學習 Shell Scripts - 利用 date 進行檔案的建立 >

因此建立的檔名都有8個數字,
於是下了ls -l | grep -n '[0-9]\{8\}'
指令將要的資料列出來,
這時候自己心中產生一個疑問,
有辦法一次將這些檔案刪除嗎?
而不用一個一個去刪除。

不知道有沒有辦法做處理,不管行或不行都懇請前輩指點迷津~
指點我這迷途的小菜鳥。
« 上次編輯: 2010-08-19 22:05 由 elf128129 »

rainday

  • 鑽研的研究生
  • *****
  • 文章數: 738
  • 性別: 男
  • enhancing and optimizing
    • 檢視個人資料
"一個一個去刪除" 是指?
rm a
rm b
rm c
<0  =_=  Don't learn to hack , hack to learn.

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
代碼: [選擇]
for i in `ls | grep '[0-9]\{8\}'`; do rm $i; done
--
TyroneYeh

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
自己try regEx建議先echo 或導出text list,免得....

當然啦,如果像 TyroneYeh 那樣很熟的話ok沒問題。
lifeIsFunWithPHP.

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
我有先 echo 過啦... 沒這麼勇 ><
--
TyroneYeh

elleryq

  • 鑽研的研究生
  • *****
  • 文章數: 908
  • 性別: 男
    • 檢視個人資料
    • Thinking more...
也可以餵給 xargs

ls | grep -n '[0-9]\{8\}' | xargs rm

Plan your work, then work your plan.
我的首頁:http://blog.elleryq.idv.tw
351899by http://counter.li.org

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
不能 -n 這樣會有行號
--
TyroneYeh

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17479
    • 檢視個人資料
    • http://www.study-area.org
如果一個 file name 裡面含有 space ,就要更小心了。

elf128129

  • 可愛的小學生
  • *
  • 文章數: 4
    • 檢視個人資料
感謝TyroneYeh和elleryq 前輩指點。
沒想到可以用xargs,
回去研讀鳥哥網站上對xargs的解釋,
引用
透過 xargs 來提供該指令引用 standard input 之用
現在終於搞懂他的用意所在了︿︿。

還有也可以使用shell script 去執行刪除多檔的工作。

小弟透過前輩的指點感覺自己武功大增了許多,超感謝的!
當然進步空間還很大,繼續努力研讀去~