web-dev-qa-db-ja.com

「引数リストが長すぎる」というシェルの制限を回避するにはどうすればよいですか?

/ tmp /内の大量のファイルに一致するファイル名ワイルドカードを使用する場合、「引数リストが長すぎる」というbashシェルの制限を回避するにはどうすればよいですか?

[my-centos4 tmp] rm -rf /tmp/myLocalFiles*
bash: /bin/rm: Argument list too long
2
WilliamKF

for i in myLocalFiles*; do rm -f $i; done

3
krnlpanic

これは、jáquerが提案したよりも少し簡単です。

find /tmp -name "myLocalFiles*" -delete
3
Neil

-deleteを使用してコマンドを検索できない場合は、これも機能します。

find /tmp -name "myLocalFiles*" -print0 | xargs -0 rm -rf
2
WilliamKF
find /tmp -name "myLocalFiles*" -exec rm -rf {} +
2
jlliagre

ワインを使用できますcmd

wine cmd
del "Z:\tmp\myLocalFiles*"
exit

シェルの拡張はうまく機能しますが、いくつかの注意点があります。 Windowsコンベンションはこれらの問題に悩まされることはありませんが、プログラマーに義務を負わせます。シェルの作成者は、プログラムが入力データをどのように期待しているかを知ることができないため、これはおそらくより良いでしょう。

0
user877329