この問題は10年前のようにLinuxで修正されたと思いました。 4000ファイルは実際にはあまり過剰に見えないので、問題なく削除できるはずです。したがって、この問題は明らかにOSXに存在します-おそらくUbuntuには存在しません。私はOSXで開発し、Ubuntuにデプロイしています
どちらの環境でもシステムレベルの回避策はありますか?このような少数のファイルについて、この問題について考える必要は本当にありませんか?この問題はLinux、特にUbuntuにもまだ存在しますか?
これは問題ではなく、制限です。次のようなものを使用できます。
find ./ -exec rm -rf {} \;
または、仕事をする代替手段を使用しないことの問題は何ですか?
これは、私が知っているすべてのUnixとWindowsでまだ問題です。これは実際には、ファイルの数などではなく、コマンドラインで渡されるバイト数の制限です。
getconf ARG_MAX
を試して、Unixの制限(バイト単位)を確認してください。 xargs
コマンドを使用して、このような問題を回避できます。
他の* nix、AFAIKについて話すことはできませんが、この「問題」は常にMac OSXに存在していました。
ARG_MAXは、/usr/include/sys/syslimits.h
で次のように定義されています。
#define ARG_MAX (256 * 1024) /* max bytes for an exec function */
sysctl kern.argmax
は以下を返します:
kern.argmax: 262144
(これはMac OS X 10.7.3にあります。これらのタイプの制限の多くは、OS Xの存続期間中に徐々に増加しています)。