2023-08-13|閱讀時間 ‧ 約 2 分鐘

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

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時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?

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

分享至
成為作者繼續創作的動力吧!
主軸圍繞於軟體科技, 除了過往經驗成章以外也持續學習新技能, 並將學習心法記錄與分享, 以期幫助相同道路之夥伴。 裡面包含著各種程式語言的疑難雜症解題技巧, 也提供資料庫、AI、認證與授權、工具庫...等技巧, 讓您自由找出您想要的解答, 如果您想要系統化的教學課程也歡迎至「🔒 阿Han的軟體心法實戰營」。
© 2024 vocus All rights reserved.