
coolguyの日記: find結果のrm 6
日記 by
coolguy
どなたかの日記で見たfind結果のrmの件、
execでrmか、xargsか、はxargsがよいと思うが、
条件※付きで以下でもよさげ。
rm `find結果`
※階層が深かったりfind結果のファイル数が多いときに使えない
そう言えば、引数全体の文字列長とは別に
引数の数にも制限がなかったっけか。
どなたかの日記で見たfind結果のrmの件、
execでrmか、xargsか、はxargsがよいと思うが、
条件※付きで以下でもよさげ。
rm `find結果`
※階層が深かったりfind結果のファイル数が多いときに使えない
そう言えば、引数全体の文字列長とは別に
引数の数にも制限がなかったっけか。
計算機科学者とは、壊れていないものを修理する人々のことである
空白 (スコア:1)
ファイル名に空白が含まれている場合もダメ。
$ touch 'white space'
$ rm $(find . -type f)
rm: './white' を削除できません: そのようなファイルやディレクトリはありません
rm: 'space' を削除できません: そのようなファイルやディレクトリはありません
$
で、-0オプションの出番になる。
長さの方では正確には、
$ getconf ARG_MAX
2097152
$
を超える長さのコマンドラインは受け付けない。
当然だけど、階層が浅くても、ファイル数が膨大な場合はエラーになる。
もっともそのレベルになると、「ls」すらまともに動かなくなるけど。
Re:空白 (スコア:1)
後者のオフトピについてのみ。
>もっともそのレベルになると、「ls」すら
今ポピュラーなファイルシステムで扱う場合でも使える手かどうかはさておき
そういう状況向きのパラメータ変更(魔改造)も存在したりするかも。
他の要求仕様と背反するかどうかまではケースバイケースだけど。
オライリーの MH/XMH タコ本だったかそれ以外のMHに関する技術的トピックを
扱うサイトの記述だったか忘れたがそういうことを志向している場合ならばあり。
Re:空白 (スコア:1)
ファイルシステムのパラメータとは異なりますが、
oracle入れるのにカーネルパラメータのチューニングが必要なのが
邪魔くさかった記憶があります。
マニュアル記載値でしか設定したことないですけど……
Re:空白 (スコア:1)
そういう状況向きのパラメータ変更(魔改造)も存在したりするかも。
当該フォルダ内のファイル数が膨大な状況ってことなら、--sort=noneか-UでOK。
Re:空白 (スコア:1)
もともとのどなたかの日記のコメントでも-0オプションの話は出てましたね。
記憶曖昧ですがARG_MAXは環境によって値が異なるのが鬱陶しいです。
大昔、i-nodeもう振れませんエラーをみたような……
Re:空白 (スコア:1)
ARG_MAXが環境によって値が異なるのは仕方ないんじゃないですかね。
そうでなければ、世の中の一番ショボい環境に合わせるってことになっちゃう。
環境毎に変わるので、調べる方法が準備されてるわけで…
inodeとは別に、一つのディレクトリ内に格納できるファイル数の上限があるファイルシステムも。
ext3で32,000、ext4で64,000、FAT32で65,534などなど。
NTFSやxfsnなどは制限なし。
…だけど、どのくらいまでが実用になるか、ってのはinodeとも上とも別の話。