コマンドラインを実行したいです。
cd ~/www/tmp/; rm -P 2*
ただし、2で始まるファイルがない場合は、エラーメッセージが表示されます。
ただし、以下を使用したいと思うかもしれません-f
。
-f Attempt to remove the files without prompting for confirmation, regardless of the file's permissions. If the file does not exist, do not display a diagnostic message or modify the exit status to reflect an error.
そして私するファイル権限に注意してください。奇妙なことが起こった場合は、中断するコマンドを好みます。私は「存在しない」エラーを抑制したいだけです。
「rmエラー」に関する他の質問を調べたところ、これら2つが(やや)関連していることがわかりました。
ファイルとディレクトリを名前で削除します。そのファイルやディレクトリはありません。
ところで、この質問への回答が何の内容なのか理解できず、必要なのかわかりませんね。
touch
この質問で提案されたハッキング:
性能低下に気にしないので効果があるようです。 (しかし、どのようなパフォーマンスの低下を受け入れますか? - つまり、これはかなりスケーラブルな技術ですか、それとも非常に悪い習慣を学んでいますか?)
if-then
コマンドラインでこれを行う方法がわかりません。
簡単なコマンドラインを切り取り - 貼り付けを整理するための別のオプションはありますか?
find -delete
私の状況に適していますか?では、なぜそうなのでしょうか?
問題のあるエラー:
rm: 2*: No such file or directory
答え1
ただrm -P
控訴するために既存のディレクトリのパターンと名前が一致する一般的なファイル(ただし、ディレクトリよりも低くない):
find directory -maxdepth 1 -type f -name 'pattern' -exec rm -P {} +
例えば、
find ~/www/tmp/ -maxdepth 1 -type f -name '2*' -exec rm -P {} +
ディレクトリ以外の項目のみを一致させるには、代わりに! -type d
を使用します-type f
。違いは、この方法が! -type d
より広い範囲のファイルタイプ(シンボルリンク、名前付きパイプ、ソケットなど)で機能することです。
見つかったファイルの特定の基準を求めるメッセージを表示するには、次の手順を実行する必要があります。いいえ-delete
代わりに-exec rm
動作しますので使用してくださいrm -f
。
-maxdepth 1
サブディレクトリを再帰的に見つけるには、削除してくださいfind
。