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
それを確認できます。名前が示すように、出力はシェルのように引用されるため、シェルへの入力として使用できます。したがって、引用符/エスケープされた出力をls
Bashにコピーして貼り付けると、ファイルの一方または両方が削除されます。
ls -l ''$'\n' 'b.txt'$'\n
もちろん、rm ...
正しいファイルを受け取ったことを確認した後です。
それは価値があるため、最初のファイル名は単一の改行であり(何らかの理由でエスケープは前にnullを追加します''
)、2番目のファイル名はb.txt
最後の改行です。