「>」またはその他の異常な文字で始まるファイルを削除する方法[終了]


8

というファイルを誤って作成しました

> option[value='2016']

どうすれば削除できますか?

My attempts:

$ rm "> option[value='2016']"
rm: cannot remove ‘> option[value='2016']’: No such file or directory
$ rm \> o*
rm: cannot remove ‘>’: No such file or directory
rm: cannot remove ‘o*’: No such file or directory
$ rm `> o*`                                                                               
rm: missing operand
Try 'rm --help' for more information.
$ rm \> option*
rm: cannot remove ‘>’: No such file or directory
rm: cannot remove ‘option*’: No such file or directory
$ rm '\> option*'                                                                         
rm: cannot remove ‘\\> option*’: No such file or directory
$
$ rm "\> option*"                                                                         
rm: cannot remove ‘\\> option*’: No such file or directory

ファイルリスト:

HAPPY_PLUS_OPTIONS/
o*
op*
> option[value='2016']
> option[value='ALFA ROMEO']
README.md
rspec_conversions/
.rubocop.yml
SAD/
SAD_PLUS_OPTIONS/

ワイルドカードを使ってみましたか?rm * option *
RageAgainstTheMachine

次の質問はばかげて見えます
Incnis Mrsi 2015

回答:


16

別のオプション

ls -i 

(適切なiノード値で)

5233 > option[value='2016']   5689 foo

その後

find . -inum 5233 -delete

オプション(プレビュー)

find . -inum 5233 -print

-xdev下に別のファイルシステムがある場合は、追加することもできます。


9

また、「-」オプションを使用することもできます。

 The rm command uses getopt(3) to parse its arguments, which allows it to
 accept the `--' option which will cause it to stop processing flag options at
 that point.  This will allow the removal of file names that begin with a dash
 (`-').  For example:
       rm -- -filename

だから私は試しました:

touch -- "> option[value='2016']"

そしてそれを削除しました:

rm -- "> option[value='2016']"

ファイル名が正しく入力されたかどうかを確認する最も簡単な方法:

rm -- ">[tab]

そして、オートコンプリートに仕事をさせましょう。

PS:想像以上に魅力的なファイル名 "-rf *"を作成しないでください。悪いことが起こるかもしれません。

-rw-r--r--    1 stephan  staff      0 Sep 13 14:11 -rf *

安全のため、常に「-i」を使用してください。

iMac:~ stephan$ rm -i -- "-rf *"
remove -rf *? Y

これは断然最良の答えです。

8

最初の問題は先行スペースだったので、

rm " > option[value='2016']"
    ^ here

動作します。

>で始まるファイルに関する質問を更新しました。


3

インタラクティブなアプローチの場合(多くの場合、より安全):

現在のディレクトリにいくつかの特別な名前のファイルがある場合。

を使用rm ./してTabTabファイルを一覧表示し、ファイルを選択して削除できます。


Tab2回入力してファイルを検索します。
Shellmode

1

についてはrm、魔法のようなものは何もありません>。山かっこがそれに到達することを確認するだけです(シェルがリダイレクトとして解釈しないようにします)。

> "> option[value='2016']"  #create it
rm "> option[value='2016']" #remove it

#remove all files in the current directory that have > in them
rm -- {,.}*\>*                 

賢明な最新のシステムを使用している場合は、タブ補完で適切にエスケープされた名前を取得できるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.