RM/リンク解除なしで削除する方法

RM/リンク解除なしで削除する方法

私が質問した他の質問に関連しています。ここ[https://unix.stackexchange.com/questions/253932/rename-folder-with-odd-characters]

rm//一般的なバイナリをバイパスし、他の方法でファイルを削除できるかどうか疑問に思います。ディスク上のフォルダやファイルの正確な場所を見つけて、その場所に別のデータを書き込んでフォルダやファイルを消去すると言うことができます。これを行う方法とオペレーティングシステムまたはファイルシステムに問題がありますか?rmdirunlink

それとも..ファイルと呼ばれることが躊躇していますが、このフォルダ/ファイルへの正確な参照を見つけて切断するなど、16進エディタを使用して表示および編集できるディスク領域はありますか?それでは、HFS+および/またはOS Xに他のアプローチがありますか?

rmEDIT1:私はこのファイルの内容を削除したくなく、/以外の方法でファイルやフォルダを削除したいと思いますunlink。法医学的意味でデータを削除するのではなく、削除を拒否するフォルダを削除しようとしています(上記の質問を参照)。

答え1

ディスクイメージの編集は可能ですが危険です。これを行うのに役立つ適切なエディタがある場合は、変更したいデータのコピー(作成など)があることを確認することをお勧めします。

最も重要なことは、ディスクがアンマウントされていて使用中でない間はこれを試みないでください。ブート/システムディスクの場合は、リカバリディスクなどの別々のブートメカニズムを使用する必要があります。

私が好むLinuxベースの回復CDシステム回復ディスクただし、HFSツールが含まれているかどうかはわかりません(パッケージリストに含まれている可能性があります)。これは別の考えられる解決策、標準のUbuntuインストールディスクを使用していますが、2009年の製品なので、おそらくとても昔ながら

答え2

元のデータが存在し続けていることに気にせず、文字エンコードの問題によって直接削除できないファイルを削除したい場合は、これが解決策です。ファイルを削除できるように、名前の変更を使用してファイルの名前を変更することが含まれます。次の例では、現在のディレクトリ内のすべてのファイル名とディレクトリ名から非ASCII文字を削除します。

rename 's/[^\x00-\x7F]//g' ./*
rm new-filenames

正規表現は[^\x00-\x7F]以下に由来します。スタックオーバーフローの質問

サブディレクトリに移動するには、findを使用してください。

find . -exec rename -n 's/[^\x00-\x7F]//g' "{}" \;

名前を変更するファイルを指定する代わりに、名前を変更するには、-n フラグを削除します。

関連情報