奇数文字を含むフォルダの名前を変更する

奇数文字を含むフォルダの名前を変更する

Macに「␀␀␀␀HFS+ Private Data」というフォルダがあります。削除しようとしていますが、unlink、rm、mvが息を呑むように混ざった奇妙な文字がたくさん含まれており、削除と内容を削除するのは難しいです。 unlink/rm/mv バイナリが別の作業を行う場合に備えて unlink() を直接呼び出すコードを書いてみました。しかし、いいえ、unlink()はこの文字を解析できません。

私はこれがどの文字であるかを調べるためにechoとodを使用します。

************@Trinity:~/Desktop/test$ echo -e "␀" | od -t oC -An
      342 220 200 012`

ここで342を確認しました。http://ascii-code.com- そしてそれがLatin-1セットの一部であることがわかりました。 UTF-8に変換しようとしています。

************@Trinity:~/Desktop/test$ iconv -f latin1 -t utf-8 "␀␀␀␀HFS+ Private Data"
iconv: ␀␀␀␀HFS+ Private Data: I/O error

では、このフォルダをどのように削除しますか? 16進/ 8進コードをrmやmvなどに渡すことはできますか? rm*、sudo 呼び出しなど考えられるすべてを試しました。問題は、そのキャラクターの連結解除ブロックなので、なんとかそのキャラクターを変更しなければならないということです。私はまた、Debianを仮想マシンにインストールし、このフォルダへのアクセスを許可して、OS X環境のツールに問題がある場合に備えてそこで試してみることを検討しています。

編集:私はこれを試しました:

************@Trinity:~/Desktop/test$ echo -e "␀␀␀HFS+ Private Data" | od -t oC -An
      342 220 200 342 220 200 342 220 200 110 106 123 053 040 120 162
      151 166 141 164 145 040 104 141 164 141 012`

************@Trinity:~/Desktop/test$ echo "\342\220\200\342\220\200\342\220\200\110\106\123\053\040\120\162\151\166\141\164\145\040\104\141\164\141\012" | xargs rm

rm: 342220200342220200342220200110106123053040120162151166141164145040104141164141012:     No such file or directory

************@Trinity:~/Desktop/test$ echo "\342"
\342

EDIT2: Unlink() エラーが表示される

************@Trinity:~/Desktop/test$ unlink test3.txt
************@Trinity:~/Desktop/test$ unlink "␀␀␀␀HFS+ Private Data/1.txt"
unlink: ␀␀␀␀HFS+ Private Data/1.txt: Invalid argument
************@Trinity:~/Desktop/test$ cd "␀␀␀␀HFS+ Private Data/"
************@Trinity:~/Desktop/test/␀␀␀␀HFS+ Private Data$ unlink 1.txt
unlink: 1.txt: Invalid argument

EDIT3:これがHFS + /ファイルシステムの問題ではなくファイル名の問題であることを示しています。

************@Trinity:~/Desktop/test$ mkdir "␀␀␀␀testTest"
************@Trinity:~/Desktop/test$ rm -r "␀␀␀␀testTest"
rm: ␀␀␀␀testTest: Invalid argument

EDIT4:これは進行状況かもしれません...次に、ロケール設定を混乱させます。

************@Trinity:~/Desktop/test$ ls | grep -i *test* | xxd
0000000: e290 80e2 9080 e290 80e2 9080 7465 7374  ............test
0000010: 5465 7374 0a                             Test.

************@Trinity:~/Desktop/test$ rm -r $'\xe2\x90\x80\xe2\x90\x80\xe2\x90\x80\xe2\x90\x80\x74\x65\x73\x74\x54\x65\x73\x74\x0a'
rm: ␀␀␀␀testTest
: No such file or directory

Follow-up to this: nope, false hope.  I dropped the \x0a on the end and it 'worked'... kind of.

************@Trinity:~/Desktop/test$ rm -r $'\xe2\x90\x80\xe2\x90\x80\xe2\x90\x80\xe2\x90\x80\x74\x65\x73\x74\x54\x65\x73\x74'
rm: ␀␀␀␀testTest: Invalid argument

ベストアンサー1

~によるとhttps://apple.stackexchange.com/questions/31734/hfs-private-directory-dataこのフォルダは、ファイルシステムの内部操作に使用されます。あなたはできるできない削除すると、ファイルシステムが破損する可能性が高くなります。

おすすめ記事