Como determinar a localização original do arquivo que está atualmente na Lixeira?

40

Suponha que algum arquivo "Any File.pdf" esteja na Lixeira (aka ~/.Trash).

Como posso determinar sua localização original?

Por "localização original", quero dizer a pasta para a qual esse arquivo seria movido se alguém aplicasse o comando "Colocar de volta" (mas sem realmente fazer isso)? (Veja a figura abaixo)

(Eu esperava que esta informação estivesse disponível através da execução de "Get Info" no arquivo, mas eu não o encontrei lá.)

Por de volta

kjo
fonte
3
Como mencionado aqui (último comentário) esta informação parece ser armazenada no arquivo .DS_Store na pasta de lixo
iolsmit
7
Relacionado: superuser.com/questions/59376/…
Ian C.
Veja o soultion aqui discussions.apple.com/thread/5767821?tstart=0 mas ele não funciona se a pasta que o contém foi apagada!
Pacerier

Respostas:

8

Os dados que contêm a localização original de um arquivo antes de serem colocados no Lixo são mantidos no arquivo .DS_Store na pasta ~ / .Trash .

Como a pasta da lixeira está oculta, normalmente não é possível encontrá-la usando o aplicativo localizador. A maneira mais fácil de encontrar esse arquivo é usando o Terminal e inserindo os seguintes comandos.

$cd ~/.Trash
$open -e .DS_Store

Isto irá abrir o arquivo no TextEdit. De lá, você deve poder procurar rapidamente o arquivo pelo nome e pelo caminho original.

Parece que os arquivos em .DS_Store seguem o padrão de:

FILE_NAME ptbLustr ORIGINAL_PATH_TO_FILE

Espaços de nota são adicionados apenas para facilitar a leitura.

David
fonte
2
Você realmente testou isso? .DS_Store contém muitos dados binários, não encontrei nenhum nome de arquivo.
nohillside
1
Eu testei isso na minha própria máquina antes de postar. Eu encontrei referências para arquivos na minha lixeira e seus locais originais.
David
1
Ah, parece depender das configurações de idioma, é tudo Unicode aqui.
nohillside
7
Eu acredito que esta resposta só funciona para o OS X em torno / antes de 10.4 ou 10.5 como. DS_Store é agora um arquivo binário e não documentado pela Apple .
bmike
Ainda funciona aqui no OS X 10.7.5.
Dictionarics Anonymous
1

As informações sobre o local original são armazenadas no arquivo DS_Store . Na versão anterior do OS X, ele era armazenado em texto simples e agora em formato binário. Esses formatos não são documentados pela Apple, no entanto, existe uma ferramenta criada por Wim L que pode lê-lo.

A ferramenta é escrita em Perl, o Mac::Finder::DSStoreprojeto fornece rotinas para ler e gravar os .DS_Storearquivos gerados pelo macOS.

De acordo com o commit inicial , a ferramenta acima é baseada no trabalho de Mark Mitrovai mais a própria investigação do autor.

O uso examples/dsstore_dump.pltentaria despejar os registros de um arquivo de armazenamento em um formato mais legível por humanos.

Exemplo de uso:

$ perl dsstore_dump.pl ~/.Trash/.DS_Store

    &makeEntries("foo.png",
        ptbL => "Users/username/Desktop/",
        ptbN => "foo.png"
    ),

Veja: dsstore repo em hhhh.org e repositório mais antigo no GitHub .

kenorb
fonte
0

Há um ótimo artigo e algumas soluções mais fáceis publicadas em http://ponderthebits.com/2017/01/mac-dumpster-diving-identifying-deleted-file-references-in-the-trash-ds_store-files-part- 1 /

Incluindo esta linha de terminal para converter um .DS_Storearquivo em texto (principalmente):

xxd -p <path/to/.DS_Store> | sed 's/00//g' | tr -d '\n' | sed 's/\([0-9A-F]\{2\}\)/0x\1 /g' | xxd -r -p | strings | sed 's/ptb[LN]ustr//g'
Dan
fonte
Em vez de duplicar uma resposta anterior , talvez você possa expandir o comando para retornar especificamente o local de Retorno, o que seria mais útil para essa pergunta individualmente?
grg
Estou "duplicando" minha própria resposta, que publiquei em 3 tópicos relevantes que não forneceram solução que funcionasse para mim. Apenas tentando salvar outras pessoas a hora da busca que eu tinha que fazer. Desculpe se estou fazendo isso errado.
Dan
Eu entendo isso e você não está fazendo nada de errado, apenas pensei que poderia ser útil adaptar este para algo mais específico para a questão em particular. Além disso, ao fornecer o link em meu comentário anterior, a outra pergunta agora é mostrada na lista de perguntas vinculadas à direita, que pode ser útil para outras pessoas.
grg
-3

'Coloque de volta' o arquivo, use a função de pesquisa para procurar o arquivo, quando você encontrar o arquivo, clique com o botão direito e selecione "Abrir pasta de fechamento"


fonte
2
E se o mesmo nome de arquivo aparecer mais de uma vez no sistema de arquivos? Essa abordagem falhará nesse caso. É melhor ler os metadados que o OS X está lendo para determinar a localização "Voltar" em primeiro lugar.
Ian C.
@IanC., Mas esta opção de hazytruth parece ser a única opção agora que dsstore é binário
Pacerier
Fuzzytruth eu quero dizer ...
Pacerier