最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關于"Argument?list?too?long”參數(shù)列表過長的四種解決方法

 更新時間:2023年02月20日 10:37:55   作者:DemonHunter211  
Linux下報錯“命令參數(shù)列表過長”,在用mv命令一次移動3萬多個文件時失敗了,原始命令類似這樣:”mv?$(ls?dir1)?dir2“,錯誤提示的中心思想是:”你這參數(shù)也太TM多了吧“,本文給大家分享四種解決”Argument?list?too?long”參數(shù)列表過長,感興趣的朋友一起看看吧

四種解決”Argument list too long”參數(shù)列表過長的辦法

在linux中刪除大量文件時,直接用rm會出現(xiàn):-bash: /bin/rm: 參數(shù)列表過長的錯誤。

這時可以用find命令來結合使用。

例:
1、rm * -rf 改為:

find . -name "*" | xargs rm -rf '*' 就行了

2、rm test* -rf 改為:

find . -name "test*" | xargs rm -rf "test*"

mv時報參數(shù)列表過長,

for i in *.m;do mv $i ${i%.m};done

于是求助于google,探索過程就省略了,直接說解決方法吧:

ls dir1 | xargs -t -I {} mv {} dir2/{}

這里的一對大括號是原文給的例子里用的,后來看了參數(shù)的用法,其實那對大括號是可以用任意字符串替換的,比如:

ls dir1 | xargs -t -I asdf mv asdf dir2/asdf

效果和大括號那一版是完全一樣的,就是看起來有點兒不嚴肅。

需要說明的是,上面xargs的第二個參數(shù),是大寫的i,讀作”愛“的那個字母,不是小寫的L。至于參數(shù)的含義嘛,我忘了。

 Linux下 報錯“命令參數(shù)列表過長”,在用mv命令一次移動3萬多個文件時失敗了,原始命令類似這樣:”mv $(ls dir1) dir2“。錯誤提示的中心思想是:”你這參數(shù)也太TM多了吧“。

按照LZ想法大概可以這么做:find /dir1/ -maxdepth 1 | xargs -i mv {} /dir2/
如果參數(shù)過長,使用tar比較簡單

tar -C /dir1/ -cf - . | tar -xf - -C /dir2/

  于是求助于google,探索過程就省略了,直接說解決方法吧:

ls dir1 | xargs -t -I {} mv {} dir2/{}

  這里的一對大括號是原文給的例子里用的,后來看了參數(shù)的用法,其實那對大括號是可以用任意字符串替換的,比如:

ls dir1 | xargs -t -I asdf mv asdf dir2/asdf

  效果和大括號那一版是完全一樣的,就是看起來有點兒不嚴肅。

  需要說明的是,上面xargs的第二個參數(shù),是大寫的i,讀作”愛“的那個字母,不是小寫的L。至于參數(shù)的含義嘛,我忘了。

另外4種方法

作為一個linux用戶/系統(tǒng)管理員, 有些時候你會遇到以下錯誤提示:

[user@localhost foo]$ mv * ../foo2

bash: /bin/mv: Argument list too long

“Argument list too long”參數(shù)列表過長錯誤經(jīng)常發(fā)生在用戶在一行簡單命令中提供了過多的參數(shù)而導致,經(jīng)常在ls *, cp *, rm * 等中出現(xiàn)。
根據(jù)問題的原因以下提供了四種方法,可以根據(jù)自己的情況酌情選用

方法1 : 將文件群手動劃分為比較小的組合
e.g 1:

[user@localhost foo]$ mv [a-l]* ../foo2

[user@localhost foo]$ mv [m-z]* ../foo2

這是最基本的方法,只是簡單的使參數(shù)數(shù)量符合要求,這種方法應用范圍有限,只適用于文件列表中的名字分布比較均勻,另外這也是個初級用戶可以考慮的解決方案,不過需要很多重復命令和對文件名分布的觀察與猜測。

方法2 : 使用find命令
e.g 2:

[user@localhost foo]$ find $foo -type f -name '*' -exec mv {}$foo2/. \;

方法2通過find命令,將文件清單輸出到mv命令,使其一次處理一個,這樣就完全避免了過量參數(shù)的存在,另外通過不同的參數(shù),可以指定除了名稱以外的時間戳,權限,以及inode等匹配模式。
方法2的缺點在于比較耗費時間。

方法3 : 創(chuàng)建shell函數(shù)
e.g 3.1:

function huge_mv ()
{whileread line1; do
mv foo/$line1 ../foo2
done
}
ls -1 foo/ | huge_mv

寫一個shell函數(shù)并不涉及到某種程度的復雜性, 這種方法比方法1和方法2相比更加靈活。
下面我們來擴展一下例3.1 :
e.g 3.2:

function huge_mv ()
{whileread line1; do
md5sum foo/$line1 >> ~/md5sums
ls -l foo/$line1 >> ~/backup_list
mv foo/$line1 ../foo2
done
}
ls -1 foo/ | huge_mv

相比例3.1,例3.2生成了文件的md校驗散列文件和名字備份,符合給自己留條后路的哲學。
另外可以根據(jù)自己的需要無限制的擴展功能。

方法4 : 終極解決方案,重新編譯內(nèi)核

首先使用這個方案之前要謹慎,因為涉及到修改內(nèi)核源代碼,在生產(chǎn)環(huán)境中還是要斟酌一下并做好測試。
另外,這個方法是從根本上解決的,一勞永逸的 
這也是開放源碼的好處之一 
首先在內(nèi)核源碼中找到 include/linux/binfmts.h文件 ,搜索到以下字段:

/*
* MAX_ARG_PAGES defines the number of pages allocated for arguments
* and envelope for the new program. 32 should suffice, this gives
* a maximum env+arg of 128kB w/4KB pages!
*/
#define MAX_ARG_PAGES 32

修改 MAX_ARG_PAGES數(shù)值為 64 或者更高即可完善的解決參數(shù)受限問題。
然后 重新編譯并啟用新內(nèi)核即可。

轉自

http://hi.baidu.com/cpuramdisk/item/5aa49ce00c0757aecf2d4f24

補充:Linux中“Argument list too long”解決方法

當我想執(zhí)行以下命令時,報錯:

mv train2014/* coco_train2014/
-bash: /bin/mv: Argument list too long

這是因為這些命令的參數(shù)太長,即文件個數(shù)過多。其中 train2014 文件夾的內(nèi)容全是 .jpg 格式的圖片文件 解決的方法如下:

find train2014/ -name "*.jpg" | xargs -i mv {} coco_train2014/

同理使用 cp, ls 等命令也可以以同樣的方式執(zhí)行:

拷貝:

find train2014/ -name "*.jpg" | xargs -i cp {} coco_train2014/

刪除:

find train2014/ -name "*.jpg" | xargs -i rm {}?

參考:

http://noahsnail.com/2017/11/23/2017-11-23-Linux%E4%B8%AD%E2%80%9CArgument%20list%20too%20long%E2%80%9D%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95/

到此這篇關于關于"Argument list too long”參數(shù)列表過長的四種解決方法的文章就介紹到這了,更多相關Argument list too long內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Shell腳本case語句簡明教程

    Shell腳本case語句簡明教程

    這篇文章主要介紹了Shell腳本case語句簡明教程,非常容易看懂的一篇文章,需要的朋友可以參考下
    2014-07-07
  • shell結構化命令if-then-else語句

    shell結構化命令if-then-else語句

    在Shell腳本編程中,if-then-else語句提供了基于條件執(zhí)行不同命令的能力,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-11-11
  • linux?type命令用法實戰(zhàn)教程

    linux?type命令用法實戰(zhàn)教程

    type命令用來顯示指定命令的類型,它是Linux系統(tǒng)的一種自省機制,知道了是那種類型,我們就可以針對性的獲取幫助,這篇文章主要介紹了linux?type命令用法實戰(zhàn)教程,需要的朋友可以參考下
    2023-05-05
  • Shell腳本中的特殊字符(美元符、反斜杠、引號等)作用介紹

    Shell腳本中的特殊字符(美元符、反斜杠、引號等)作用介紹

    這篇文章主要介紹了Shell腳本中的特殊字符(美元符、反斜杠、引號等)作用介紹,還包括其它特殊字符,需要的朋友可以參考下
    2015-05-05
  • Shell腳本監(jiān)控目錄內(nèi)文件改動

    Shell腳本監(jiān)控目錄內(nèi)文件改動

    這篇文章主要介紹了Shell腳本監(jiān)控目錄內(nèi)文件改動,需要的朋友可以參考下
    2017-05-05
  • shell編程基礎知識小結

    shell編程基礎知識小結

    這篇文章主要介紹了shell編程基礎知識,包括文件類型、正則表達式、字符類、引號類型、變量設置、條件測試、命令執(zhí)行順序、腳本調(diào)試方面的介紹
    2013-02-02
  • Shell實現(xiàn)猜數(shù)字游戲

    Shell實現(xiàn)猜數(shù)字游戲

    這篇文章主要為大家詳細介紹了Shell實現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • scp命令詳解(全)

    scp命令詳解(全)

    這篇文章主要介紹了scp命令,scp如何做遠程拷貝,下面小編幫助大家解決有關scp命令相關知識,需要的朋友可以參考下
    2015-08-08
  • shell腳本中使用iconv實現(xiàn)批量文件轉碼的代碼分享

    shell腳本中使用iconv實現(xiàn)批量文件轉碼的代碼分享

    這篇文章主要介紹了shell腳本中使用iconv實現(xiàn)批量文件轉碼的代碼分享,本文提供了2個實現(xiàn)代碼和各自使用方法,需要的朋友可以參考下
    2014-08-08
  • rhel5.7下安裝gearmand及啟動的方法

    rhel5.7下安裝gearmand及啟動的方法

    這篇文章主要介紹了rhel5.7下安裝gearmand及啟動的方法,需要的朋友可以參考下
    2014-07-07

最新評論

高尔夫| 绥化市| 石棉县| 柳江县| 芦溪县| 台东县| 尼木县| 中牟县| 三河市| 博兴县| 襄城县| 宁南县| 隆林| 城步| 馆陶县| 随州市| 定西市| 晋州市| 蒙城县| 高台县| 寿阳县| 桐庐县| 互助| 灵台县| 武汉市| 沙坪坝区| 抚顺县| 改则县| 涡阳县| 莲花县| 巴里| 靖安县| 秀山| 威远县| 平顺县| 玉山县| 从化市| 晋中市| 太康县| 博乐市| 沅陵县|