O arquivo hash do Emacs temp dot não existe

1

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?

    
por jcubic 26.02.2014 / 14:06

2 respostas

1

Eu descobri qual era o problema, o Emacs criava links simbólicos quebrados:

$ file .#xxxx 
.#xxxx: broken symbolic link to '[email protected]:1393008109'
    
por 26.02.2014 / 15:09
1

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 .

    
por 26.02.2014 / 14:32

Tags