我最近一直在複製和移動大量文件(〜400,000)。我知道可以在Bash命令行上擴展的參數數量有限制,所以我一直使用xargs來限制生成的數字。最大數量的Bash參數!=最大數量cp參數?
出於好奇,我想知道的,我可以用參數的最大數量是,我發現this post稱這是系統相關的,而且我可以運行此命令找出:
$ getconf ARG_MAX
令我驚訝的是,我回來了anwser是:
2621440
就在260萬。正如我所說的,我正在操作的文件數量遠遠低於這個數字 - 約爲400k。我肯定需要使用xargs
移動和複製這些文件的方法,因爲我嘗試使用正常的mv * ...
或cp * ...
,並且得到'參數列表太長'的錯誤。
所以,做mv
和cp
命令對的,我可以使用(我無法找到它們的手冊頁的任何東西)的參數個數自己固定的限制,還是我失去了一些東西?
爲什麼你必須指定每個文件?你不能只是指定他們的目錄或類似的東西? – 2010-11-15 14:02:34
@Christoffer我不只是將目錄從一個地方複製到另一個地方,我正在複製特定文件,重命名文件串,將某些文件從一個地方移動到另一個地方。我在實際執行這些操作時沒有問題。我只是對'cp'和'mv'命令的具體侷限性感到好奇。 – 2010-11-15 14:14:11