Sei que esse é um tópico antigo, mas eu só tinha o mesmo problema e queria compartilhar.
Aqui está a minha história (seja paciente, há um final feliz).
Ambiente:
Gentoo kernel 4.12.5 64bits no reiserfs
Como isso pôde acontecer?
Eu tenho várias máquinas com uma pasta compartilhada usando syncthing. Em algum momento no passado, removi um arquivo chamado ".stfolder" e criei um diretório com esse nome. Talvez o bug seja devido à sincronização dessa operação em outra máquina.
Agora vamos examinar o bug: (Estou operando como root aqui)
ls -lahd .*
drwxrwx--- 5 stopi syncthing 656 3 sept. 18:24 .
drwxr-xr-x 5 stopi stopi 240 3 sept. 18:21 ..
drw-rw---- 2 stopi syncthing 48 3 sept. 18:24 .stfolder
-rw-rw---- 1 stopi syncthing 0 29 août 12:51 .stfolder
-rw-rw---- 1 stopi syncthing 23 28 oct. 2017 .stignore
find -type f -name .stfolder
(<= no output there)
find -type f -name ".*"
./.stignore
./.stfolder
find -type f -name ".s*"
./.stignore
parece que o arquivo é um fantasma, no entanto, a pasta está respondendo normalmente (com localização)
file .*
.: directory
..: directory
.stfolder: directory
.stfolder: empty
.stignore: C source, ASCII text
file .s*
.stfolder: directory
.stignore: C source, ASCII text
Eu sei, muito estranho ...
rm -r .stfolder
ls -lahd .*
drwxrwx--- 5 stopi syncthing 656 3 sept. 18:24 .
drwxr-xr-x 5 stopi stopi 240 3 sept. 18:21 ..
-rw-rw---- 1 stopi syncthing 0 29 août 12:51 .stfolder
-rw-rw---- 1 stopi syncthing 23 28 oct. 2017 .stignore
rm .stfolder
rm: impossible de supprimer '.stfolder': Aucun fichier ou dossier de ce type
Não consigo remover esse arquivo fantasma!
Mas no final, removi-o com sucesso movendo-o para um ponto de montagem tmpfs
mv .stfolder /elsewhere/
mv: impossible d'évaluer '.stfolder': Aucun fichier ou dossier de ce type
mv .* /elsewhere/
Devo dizer que o bug ainda está presente no tmpfs, portanto não está relacionado ao reiserfs:
cd /elsewhere
ls -lahd .*
-rw-rw---- 1 stopi syncthing 0 29 août 12:51 .stfolder
ls -lahd .s*
ls: impossible d'accéder à '.s*': Aucun fichier ou dossier de ce type
Como você pode ver nesta saída do bash, o arquivo está presente e não está presente ao mesmo tempo. Devido a essa habilidade de gato de Schrödinger , podemos criar uma pasta com o mesmo nome.
Mas espere, há mais (e você deve achar isso óbvio): podemos criar outro arquivo com o mesmo nome.
touch .stfolder
ls -lahdQ
total 0
drwxrwxr-x 3 root users 100 3 sept. 19:13 "."
drwxrwxrwt 18 root root 440 3 sept. 17:35 ".."
-rw-r--r-- 1 root root 0 3 sept. 19:13 ".stfolder"
-rw-r----- 1 root root 0 3 sept. 19:09 ".stfolder"
O fantasma pode ser copiado (para que eu possa duplicar o bug) ou manipulado pelo chown, chmod, etc. a única restrição é que você não pode nomeá-lo, então você deve colocá-lo em um diretório vazio e usar ". *" Como argumentos para esses comandos ... mas funciona!
Devido à sua natureza, esse arquivo estava vazio desde o início (é apenas um sinalizador para sincronização).
Então, eu estava curioso para colocar alguns dados nesse arquivo.
E aqui, a solução veio para mim:
vi .*
" ============================================================================
" Netrw Directory Listing (netrw v162)
" /elsewhere
" Sorted by name
" Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$
" Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:special
" ==============================================================================
../
./
.<200b>stfolder
Sim, há um caractere invisível nesse arquivo, logo após o ponto.
Isso explica tudo.
Graças a Deus, eu não usei "teste de eco >>. *" E gato ...
.myfile
?