[解決]檔案過多無法 ls? [論壇 - Ubuntu 程式設計]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



[解決]檔案過多無法 ls?
會員五級
註冊日期:
2010/9/26 16:05
所屬群組:
已註冊使用者
等級: 27
HP : 0 / 660
MP : 317 / 17206
EXP: 43
離線
想請教一下最近遇到的問題
我電腦裏有個資料夾,是作業需求,裏面全部都是文件集小檔案
檔案數目前蒐集到8萬左右
但是在資料夾下ls指令時,會由於檔案數量過多而執行失敗,失敗訊息如下:

-su: /bin/ls: 引數列項目過長

想請教這個該如何解決?

2012/11/23 8:32
應用擴展 工具箱
回覆: [求助]檔案過多無法 ls?
會員三級
註冊日期:
2006/12/24 18:19
所屬群組:
已註冊使用者
等級: 13
HP : 0 / 309
MP : 68 / 11461
EXP: 38
離線
這樣不知道可不可以


find . -name 'a*.exe' -exec ls {} \;

2012/11/23 9:07
應用擴展 工具箱
回覆: [求助]檔案過多無法 ls?
會員五級
註冊日期:
2010/9/26 16:05
所屬群組:
已註冊使用者
等級: 27
HP : 0 / 660
MP : 317 / 17206
EXP: 43
離線
感謝eliu
其實目前的暫用解法,就是類似你提供的方法
不過我想知道,ls指令對檔案數量是否有限制?
能否在那裏作設定讓上限值提高?
說實在的,8萬個檔案放在一個資料夾,
感覺上並不是天量,怎麼就到頂了?
想了解一下,所以發問。

2012/11/23 9:21
應用擴展 工具箱
回覆: [求助]檔案過多無法 ls?
會員三級
註冊日期:
2006/12/24 18:19
所屬群組:
已註冊使用者
等級: 13
HP : 0 / 309
MP : 68 / 11461
EXP: 38
離線
可能你是用 ls a*
因為是 bash 把 a* 找出之後用 command line argument 的方式傳給 ls,所以會有這種問題。

如果要徹底移除這個限制,需要修改 & compile kernel source 的

MAX_ARG_PAGES

這樣有點麻煩

2012/11/23 9:50
應用擴展 工具箱
回覆: [求助]檔案過多無法 ls?
會員四級
註冊日期:
2010/8/12 15:54
所屬群組:
已註冊使用者
等級: 18
HP : 0 / 443
MP : 135 / 11696
EXP: 72
離線
MAX_ARG_PAGES 要重編 kernel , 太累了
可以用 find/xargs 來做

或是自己寫一個 scripts 解決

http://www.linuxjournal.com/article/6060

2012/11/23 10:24
應用擴展 工具箱
[解決]檔案過多無法 ls?
會員五級
註冊日期:
2010/9/26 16:05
所屬群組:
已註冊使用者
等級: 27
HP : 0 / 660
MP : 317 / 17206
EXP: 43
離線
eliu 寫到:
可能你是用 ls a*
因為是 bash 把 a* 找出之後用 command line argument 的方式傳給 ls,所以會有這種問題。

如果要徹底移除這個限制,需要修改 & compile kernel source 的

MAX_ARG_PAGES

這樣有點麻煩


感謝
我的確是遇到這個問題
原來是這個原因,受教了

2012/11/23 13:10
應用擴展 工具箱
回覆: [解決]檔案過多無法 ls?
版主
註冊日期:
2008/7/14 0:03
來自 螢幕的另一端
所屬群組:
網站管理員
已註冊使用者
討論區管理群
等級: 32
HP : 0 / 798
MP : 496 / 25924
EXP: 94
離線
此文移到程式設計專區,並已加精華

2012/11/23 15:01
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.