Pythonスクリプトが誤動作し、Sudo
を使用して>
という名前のファイルを作成しました。
このファイルを削除するにはどうすればよいですか?
もちろん、Sudo rm >
を試すと、rm
の出力をリダイレクトしようとしていると考えられるため、エラーbash: syntax error near unexpected token 'newline'
が発生します。
その権限は-rw-r--r--
です。
これらのいずれでも機能するはずです。
Sudo rm \>
Sudo rm '>'
Sudo rm ">"
Sudo find . -name '>' -delete
Sudo find . -name '>' -exec rm {} +
最後の2つのコマンド、find
を使用するコマンドは、現在のフォルダーで>
という名前のallファイルまたはディレクトリを見つけます。およびそのすべてのサブフォルダ。これを回避するには、GNU findを使用します。
Sudo find . -maxdepth 1 -name '>' -delete
Sudo find . -maxdepth 1 -name '>' -exec rm {} +
Pythonを使用して削除することもできます:
python -c 'import os;os.remove(">")'
POSIXの場合find
:
find . ! -name . -Prune -type f -name '>' -exec rm -f {} +
私が最初にやったこともうまくいきます:
Sudo sh -c "rm \>"
これはもちろん、より単純なSudo rm \>
のバリアントです。
シェルによってリダイレクトとして解釈されないように、文字を引用します。
Sudo rm '>'
ただし、奇妙な文字を含む他のファイルがある場合、最も安全な方法は、nautilus
などのGUIファイルエクスプローラーを開いて削除します。
これをコメントとして試しましたが、すべて1行で表示されました
[Harry@localhost]~% touch ">"
[Harry@localhost]~% cat > ">"
line 1
line 2
[Harry@localhost]~% cat ">"
line 1
line 2
[Harry@localhost]~% ls -l ">"
-rw-r--r-- 1 Harry Harry 14 Jun 5 12:04 >
[Harry@localhost]~% rm ">"
[Harry@localhost]~% ls -l ">"
ls: cannot access >: No such file or directory
[Harry@localhost]~%