Linux下 報錯“命令參數列表過長”,在用mv命令一次移動3萬多個文件時失敗了,原始命令類似這樣:”mv $(ls dir1) dir2“。錯誤提示的中心思想是:”你這參數也太TM多了吧“。
於是求助於google,探索過程就省略了,直接說解決方法吧: 【6688電子商務網站 www.6688.cc 】
ls dir1 | xargs -t -I {} mv {} dir2/{}
這裡的一對大括號是原文給的例子裡用的,後來看了參數的用法,其實那對大括號是可以用任意字符串替換的,比如:
ls dir1 | xargs -t -I asdf mv asdf dir2/asdf
效果和大括號那一版是完全一樣的,就是看起來有點兒不嚴肅。
需要說明的是,上面xargs的第二個參數,是大寫的i,讀作”愛“的那個字母,不是小寫的L。至於參數的含義嘛,我忘了。
點擊這裡下載詳細的xargs的用法。