私は何が起こっているのかを理解しようとしています。私は約1時間前にsudoを使って/ rootにあるファイルを編集していましたが、保存して終了したときに誤ってバックスラッシュキーを押して、ルートが所有していた "\"ファイルというファイルが私のホームディレクトリにありました。権限は640です。与えられた名前のファイルを削除できないことを知り、別のバックスラッシュを使用してバックスラッシュをエスケープして削除しようとしましたが、これはsudo rm \\
システムがハングするように見え、その時点でパニックになって最初に試しましたControl-C(もちろんそうではありませんでした)。アクション機能)とControl-Z(キーの組み合わせを数回押した後)プロンプトが返されました。
もともとコマンドを実行したときにホームディレクトリにあったことを確認した後、プロセスを見つけることにしました。最後にこれを削除するためにaを実行する必要がありましたが、kill -9
システムの他の場所からファイルが削除されていないことを確認したかったです。このコマンドが中断される他の理由は考えられません。
ベストアンサー1
私はユーザーがsudo rm \
。
どのコマンドも入力しても何も\
しません。Enter
改行文字をエスケープしただけなので、何もしません。同様の新しいプロンプトが表示されることがあります>
。そうですか?これは$PS2
、現在のコマンドを完了するためにより多くのデータが必要なときにシェルが使用する補助プロンプト()です。
誤って(または意図的に)提案を終了できなかった場合は、次のような結果が得られます。
$ echo 'hello
>
そこから続けてください:
$ echo 'hello
> world'
hello
world
行の末尾に次のように入力して\
連続行を導入できます。
$ ls -l \
>
ここから前の行を続けることができます。
$ ls -l \
> /usr \
> /bin
後で改行を押すと、Enter改行が空白に変換され、コマンドが実行されます(ls -l /usr /bin
この例で入力したように)。
だから結論は:あなたが入力しました
$ sudo rm \
次にEnterキーを押します。これは、シェルがまだコマンドを終了するのを待っているため、コマンドを実行していないことを意味します。この時点でCtrl+Cキャンセルコマンドを押します。
次の質問は:というファイルを削除する方法は\
? (ルート所有)
このように:
$ sudo rm \\
または次のようになります。
$ sudo rm '\'