Eu tenho uma pasta no meu Mac chamada "␀␀␀␀HFS + dados particulares". Eu estou tentando excluí-lo, mas contém um monte de caracteres estranhos que estão bloqueando unlink, rm e mv, tornando-se difícil removê-lo e seu conteúdo. Eu tentei chicotear algum código para chamar unlink () diretamente apenas no caso de binários unlink / rm / mv estarem fazendo algumas outras coisas - mas não, unlink () não pode analisar este caractere.
Eu usei echo e od para descobrir qual personagem é essa:
ashleyharvey@Trinity:~/Desktop/test$ echo -e "␀" | od -t oC -An
342 220 200 012'
Eu procurei 342 aqui: link - e descobri que ele faz parte do conjunto Latin-1. Eu tentei iconv para convertê-lo em UTF-8:
ashleyharvey@Trinity:~/Desktop/test$ iconv -f latin1 -t utf-8 "␀␀␀␀HFS+ Private Data"
iconv: ␀␀␀␀HFS+ Private Data: I/O error
Então, como eu excluo essa pasta? Posso passar códigos hex / oct para rm ou mv ou algo assim? Eu tentei tudo que eu posso pensar, incluindo rm *, invocando sudo, etc O problema é que desvincula as bobinas desse caractere, então eu preciso mudar esse caractere de alguma forma. Eu também estava pensando em instalar o Debian em uma VM e dar a ele acesso a esta pasta para que eu pudesse tentar a partir daí, caso isso seja um problema com as ferramentas que eu tenho no meu ambiente OS X.
EDITAR:
Eu tentei isso:
ashleyharvey@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'
ashleyharvey@Trinity:~/Desktop/test$ echo "200200200063300216145041412" | xargs rm
rm: 342220200342220200342220200110106123053040120162151166141164145040104141164141012: No such file or directory
ashleyharvey@Trinity:~/Desktop/test$ echo "2"
2
EDIT2: mostrando o erro unlink ()
ashleyharvey@Trinity:~/Desktop/test$ unlink test3.txt
ashleyharvey@Trinity:~/Desktop/test$ unlink "␀␀␀␀HFS+ Private Data/1.txt"
unlink: ␀␀␀␀HFS+ Private Data/1.txt: Invalid argument
ashleyharvey@Trinity:~/Desktop/test$ cd "␀␀␀␀HFS+ Private Data/"
ashleyharvey@Trinity:~/Desktop/test/␀␀␀␀HFS+ Private Data$ unlink 1.txt
unlink: 1.txt: Invalid argument
EDIT3: mostrando que não é um problema do sistema de arquivos HFS + /, mas sim um problema de nome de arquivo
ashleyharvey@Trinity:~/Desktop/test$ mkdir "␀␀␀␀testTest"
ashleyharvey@Trinity:~/Desktop/test$ rm -r "␀␀␀␀testTest"
rm: ␀␀␀␀testTest: Invalid argument
EDIT4: isso pode ser um progresso ... Eu vou mexer com a localidade seguinte.
ashleyharvey@Trinity:~/Desktop/test$ ls | grep -i *test* | xxd
0000000: e290 80e2 9080 e290 80e2 9080 7465 7374 ............test
0000010: 5465 7374 0a Test.
ashleyharvey@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.
ashleyharvey@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