首先我們來查查看目標的目錄有多少檔案, 結果卻…
# 查看檔案有多少量
ll *.txt|wc -l
# 悲劇發生了...
-bash: /usr/bin/ls: Argument list too long
那我們試著搬移檔案呢?
# 搬移檔案到上一層目錄
mv *.txt ../
# 一樣不給搬
-bash: /usr/bin/mv: Argument list too long
試了試「cp、rm」…等指令也是得到一樣的結果, 究竟為何會這樣呢? 讓我們來追查一下原因吧!
發生的主因是因為傳遞給系統指令的參數過長, 而Linux系統本身具有避免過長的限制, 因此算是一個守衛檢查的政策。
有興趣的朋友可以參考「argmax」,這裡有詳細的說明。
主要會有兩種解決方法:
find /path/to/files -type f -name "*.txt" | xargs rm
find /path/to/files -type f -name "*.txt" -exec rm {} \\;
Linux系統雖然相對門檻較高, 但使用者也都非常樂意分享遇到的狀況以及處理方法,所以基本上都不用害怕這個系統, 而且處理效能相對較佳, 尤其我們開發雲服務的應用程式時就非常需要Linux的技能, 不妨好好的學習一番, 跟上時代的趨勢。
喜歡撰寫文章的你,不妨來了解一下:
Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?
歡迎加入一起練習寫作,賺取知識