この名前のファイルは削除できません。

この名前のファイルは削除できません。

Cでファイルマネージャを作成しても誤って削除できないファイルが2つ作成されました。

ファイル1: ''$'\n'

ファイル2:'b.txt'$'\n'

2回入力rmしてタップしてもtab表示されません。

どのように削除しますか?

編集する:

出力ls -la

-rw-r--r-- 1 pi pi 0 Feb 7 04:12 ''$'\n'
-rw-r--r-- 1 pi pi 0 Feb 7 00:48 'b.txt'$'\n'

ベストアンサー1

'b.txt'$'\n'これはおそらく最後の一重引用符で後者になければなりません。

これは、引用スタイルを使用したGNU lsの出力に似ていますshell-escape。最新バージョンのGNU lsはデフォルトでこれらの参照を使用します。同じ出力が提供されていることを確認するために実行して、ls -l --quoting-style=shell-escapeそれを確認できます。名前が示すように、出力はシェルのように引用されるため、シェルへの入力として使用できます。したがって、引用符/エスケープされた出力をlsBashにコピーして貼り付けると、ファイルの一方または両方が削除されます。

ls -l ''$'\n' 'b.txt'$'\n

もちろん、rm ...正しいファイルを受け取ったことを確認した後です。

それは価値があるため、最初のファイル名は単一の改行であり(何らかの理由でエスケープは前にnullを追加します'')、2番目のファイル名はb.txt最後の改行です。

おすすめ記事