【Linux疑難雜症】Argument list too long的解決辦法

2023/08/13閱讀時間約 1 分鐘
raw-image

圖片來源...

故事的起源…

raw-image

圖片來源...


首先我們來查查看目標的目錄有多少檔案, 結果卻…

# 查看檔案有多少量
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時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?

歡迎加入一起練習寫作,賺取知識

91會員
260內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
發表第一個留言支持創作者!