web-dev-qa-db-ja.com

「>」という名前のファイルを削除するにはどうすればよいですか?

Pythonスクリプトが誤動作し、Sudoを使用して>という名前のファイルを作成しました。

このファイルを削除するにはどうすればよいですか?

もちろん、Sudo rm >を試すと、rmの出力をリダイレクトしようとしていると考えられるため、エラーbash: syntax error near unexpected token 'newline'が発生します。

その権限は-rw-r--r--です。

22
APerson

これらのいずれでも機能するはずです。

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 {} +
54
terdon

Pythonを使用して削除することもできます:

python -c 'import os;os.remove(">")'

POSIXの場合find

find . ! -name . -Prune -type f -name '>' -exec rm -f {} +
18
cuonglm

私が最初にやったこともうまくいきます:

Sudo sh -c "rm \>"

これはもちろん、より単純なSudo rm \>のバリアントです。

1
APerson

シェルによってリダイレクトとして解釈されないように、文字を引用します。

Sudo rm '>'

ただし、奇妙な文字を含む他のファイルがある場合、最も安全な方法は、nautilusなどのGUIファイルエクスプローラーを開いて削除します。

0
Cyker

これをコメントとして試しましたが、すべて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]~% 
0
Harry Weston