Bashからを削除したいです#
。rm #*
しかし、次のメッセージを受け取りましたrm: missing operand
。
それでは、この目標を達成する方法は?
答え1
オクトソフ(#
)またはポンド記号はコメント文字です。POSIX構文はここにあります言ったように:
現在の文字が「#」の場合、その文字と次の<newline>より前(含まれていない)の後続のすべての文字はコメントとして削除されます。行を終える <newline> はコメントの一部とは見なされません。
したがって、コメントとして解釈されないようにポンド記号を引用またはエスケープする必要があります。
rm '#'*
または
rm "#"*
または
rm \#*
答え2
コメントを開始しますが、#
単語の先頭でのみコメントを実行します。したがって、パス(./
現在のディレクトリなど)の前にプレフィックスを追加すると、無効になる可能性があります。
rm ./#*
さらに、プレフィックスはダッシュ()で始まるファイル名がコマンドオプションとして解釈されるのを防ぐ2つの方法の1つ./
です。-like-this
答え3
シェルが次の場合、コメントとして使用される文字をbash
無効にできます。#
インタラクティブシェルからそして
shopt -u interactive_comments
このシェルオプションをクリアした後、
rm #*
エスケープなしで元の期待どおりに機能する必要があります#
。
答え4
使用しているシェル設定によって異なる
rm \#file
または
rm '#file'
または特殊文字の場合は#と解釈されて表示されます。
rm ?file
働くことができる