対処 UNIX ディレクトリのチルダ文字(~)

対処 UNIX ディレクトリのチルダ文字(~)

私はUNIX環境で作業していますが、私の作業ディレクトリ(UNIXホームディレクトリから離れています)に~

一度はrm -rf ~、作業ディレクトリでこれを実行した後、ホームディレクトリが完全に削除され、IT部門に助けを求めたことがあります。

私はこれ以上やりたくありません。その間、次のことを知りたいです。

  1. ~私の作業ディレクトリに作成されるのはなぜですか?保存して指が滑りましたか? (:w!ところで何が起こったのでしょうか:w~?!)

  2. p4がチェックインする前に知らない追加のファイルやフォルダを探すスクリプトがあるため、これが~問題を引き起こす可能性があります。~ホームディレクトリを削除せずに作業ディレクトリからどのように削除しますか?

del代わりに使用するbackupというバックアップコマンドがありますrm -rf。これは一時的な場所に保存するだけです。使用して削除することもできますが~、なぜこのようなことが起こるのか、どのように削除するのか知りたいのがもっと気になります。

答え1

次のいずれかを引用してください。

rm -i '~'
rm -i "~"
rm -i \~

または、デフォルト名だけでなくパスとしても参照してください。

rm -i ./~
rm -i /path/to/~

SOME$PATHこれは面白いように見える文字名ですが、概念的には次のようなファイルを作成した場合と変わりません。

touch 'SOME$PATH'

以下を実行して削除してみてください。

rm -i SOME$PATH

警告:変数 SOME$PATH 例示目的のため、ここでは引用しなかった。通常は引用符で囲みます。 'SOME$PATH' )

どちらの場合も、シェルはユーザーが指定した名前を拡張するため、これが発生しないようにする必要があります。

また:ファイルを削除するために使用しないでくださいrm -rf!その目的は、ディレクトリが削除される可能性があることをrm -r知らせることです。rmファイルを削除しようとしたときに誤ってディレクトリ全体を削除したくない場合は、習慣的に渡さないでください-r

答え2

チルダは、コンテキストで単独で使用される場合、ls ~~ がホームディレクトリへのショートカットなので、ホームディレクトリを一覧表示します。これにより、ls ~brownBrownのホームディレクトリの内容が一覧表示されます。

特に指定しない限り、VIMは変更されたファイルのバックアップコピーを作成します。myFile myFile〜。

この動作はバックアップを作成するため、良いですが必要ない場合は.vimrcファイルに追加してください。バックアップ設定はありません(今すぐvi ~/.vimrcアクセスしています。)

もちろん、他の人が言ったように、〜というファイルがある場合は、文字を\〜でエスケープしてください。

me 217 % vi this      (saved as :w~)
me 218 % ls
this  ~
me 219 % cat \~
kfdkdfk
me 220 % \rm \~
me 221 % ls
this

答え3

タイプミスがあるかもしれません。設定が私の設定に似ている場合、TERM=xtermキーボードのほとんどすべてのファンクションキーは次のエスケープシーケンスを送信します。

infocmp -1 | grep -n \~ | tail -n3
138:    kich1=\E[2~,
141:    knp=\E[6~,
142:    kpp=\E[5~,

出力の半分以上には以下がinfocmp -1含まれます。~ティルデマイコンピュータから脱出してください。ほとんどの人が何をしているのかわかりません。私はzshほとんどの場合、少なくとも文字列のエスケープされた部分が実際に食べられることを知っています。~ティルデ

たとえば、次のようにecho入力します。<space>それF6から<return>印刷...

/home/mikeserv

送信される実際のエスケープシーケンスは次のとおりです。

kf6=\E[17~

>興味深いことに、文字を含む他のエスケープシーケンスがあります。

infocmp -1 | grep \>
is2=\E[!p\E[?3;4l\E[4l\E>,
rmkx=\E[?1l\E>,
rs2=\E[!p\E[?3;4l\E[4l\E>,

これは一般的に使用されるエスケープ文字です。つまり、文字列をリセットして初期化します。インタラクティブシェルが入力を待っている間にキーボードを離したりボタンを押すと、ランダムに切り捨てられたファイルが~ファイルシステム全体に表示されることを想像するのは難しくありません。少なくとも私には時々そのようなことが起こります。

関連情報