Eu descobri qual era o problema, o Emacs criava links simbólicos quebrados:
$ file .#xxxx
.#xxxx: broken symbolic link to '[email protected]:1393008109'
Eu uso muito o find | xargs grep
quando trabalho em código fonte grande e quando não salvei um arquivo no Emacs ele cria .#SomeFile
e grep dá erro de que não existe tal arquivo (não estou incluindo porque está localizado )
O mesmo quando eu corro:
ls -A dir/ | grep '^\.#' | xargs file
Eu tenho:
.#SomeFile: ERROR: cannot open '.#SomeFile' (No such file or directory)
Por que isso?
Eu descobri qual era o problema, o Emacs criava links simbólicos quebrados:
$ file .#xxxx
.#xxxx: broken symbolic link to '[email protected]:1393008109'
O problema realmente não tem qualquer coisa para fazer com dotfiles. Quando você diz:
ls -A dir/
exibiria o conteúdo do diretório, por exemplo listar arquivos como foo
, bar
, ... Agora, quando você tentar redirecionar a lista para xargs
, o último tentará localizar aqueles no diretório atual e passar / falhar dependendo sobre se esses nomes de arquivos existem no diretório atual e dir
ou não.
Crie um symlink para o arquivo desejado em dir
em seu diretório atual e você notaria que seu comando começaria a funcionar:
ln -s dir/.#Somefile .
Você deve usar find
:
find dir -maxdepth 1 -name '\.#*' | xargs file
e você veria os resultados esperados .
Você também pode consultar Analisando ls
.