nohup.out
マウントされたファイルシステム内のすべてを検索して削除したいと思います。
ファイル名にスペースが含まれているディレクトリやファイルがいくつかあるので、と思いますxargs -0
。
安全のために、インタラクティブに削除したいと思います。つまり、本当に削除するかどうかを尋ねられます。だから私は考えrm -i
てxargs -p
また、見つかった各ファイルを個別に削除したいので、と思いますxargs -n 1
。
しかし、次のコマンドは私が望むようには機能しません。
locate -i nohup.out | xargs -0 -n 1 -p rm -i
各ファイルを削除して許可を求めるプロンプトは表示されません。
なぜ、どのコマンドが期待どおりに機能するのだろうか?
ちなみに私のxargsバージョンはxargs(GNU findutils)4.4.2です。それが理由でしょうか?
しかし、次のコマンドは私が望むようには機能しません。
locate -i nohup.out | xargs -0 -n 1 -p rm -i
もちろん、使用している場合は、xargs -0
それをと一致させる必要がありますlocate -0
。
各ファイルを削除して許可を求めるプロンプトは表示されません。なんでだろう
xargs
/dev/tty
プロンプトが表示されたら、から入力を読み取る必要があります。これはそのように機能するため、オプションのxargs
引数のlocate
読み取りと応答の読み取りに'sstdinを使用する際に競合が発生することはありません-p
。
ただし、xargs
を実行するために使用していますrm -i
。このrm -i
コマンドは、stdinから読み取る入力も読み取りたいと考えています。したがって、それはxargs
の入力の一部を消費し、物事はあなたが期待するように機能しません。
そして、どのコマンドが私が望むように機能しますか?
Bashを使用している場合、これは1つのオプションです。
xargs -a <(locate -0 -i nohup.out) -0 -n 1 -p rm -i
ただし、findですべてを実行することもできます。
find / -depth -name nohup.out -ok rm -i '{}' ';'
変化する ';' 一度に複数のファイルを削除するには、「+」に変更します。この要件とこの問題を解決するためのさまざまな方法は、findutilsのTexinfoマニュアルで説明されています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加