Dado um arquivo que eu sei que foi copiado em um determinado diretório, eu quero encontrar o caminho exato onde a cópia do arquivo agora reside. É garantido que o arquivo não foi editado e será exatamente como a cópia.
Não seria necessário verificar o diretório inteiro e todos os seus subdiretórios, pois sei algumas coisas sobre onde o arquivo pode estar. Os arquivos têm duas características: EXECUTAR e VERSÃO, que são conhecidas por nós e restringir onde a cópia do arquivo pode ser.
A solução provavelmente usaria diff
para comparar arquivos e grep
ou find
para selecionar os diretórios que eu realmente quero ver. Eu não tenho ideia, no entanto, de como montar isso.
Portanto, temos um arquivo ( MYFILE=data.txt
) e queremos saber o caminho de sua cópia (por exemplo, Jun-09/15/version3/run1
) e já sabemos, por exemplo, alguns diretórios que podem ser evitados. Por exemplo, para um determinado arquivo, podemos saber que RUN=run1
, caso em que não devemos olhar para os diretórios "run2". Da mesma forma, podemos saber VERSION=version3
, caso em que não devemos olhar para os diretórios version1 ou version2. Vale a pena notar que há também a possibilidade de o arquivo não ter uma cópia, e nesse caso eu gostaria de saber isso também.
Explicação de como é a estrutura do arquivo: O diretório em questão tem uma pasta para cada mês nos últimos sete anos (chamada, por exemplo, "Jun-09"), e cada um deles esses subdiretórios têm uma pasta para cada dia (por exemplo, "11" para o 11º dia do mês). Em seguida, cada uma dessas pastas "dia" tem uma pasta para cada "versão" (os dados em questão tem 3 "versões") e cada um deles tem duas "execuções". No entanto, apesar do fato de que as pastas devem organizar os arquivos no tempo, não há garantia de que o arquivo foi criado ou editado pela última vez naquele mês.
MY ATTEMPT : Eu tentei, a partir do diretório raiz da estrutura descrita acima, executar find . -type f -name data.txt | diff ~/myOtherdirectory/files/data.txt
, mas continuo recebendo 'operando ausente após' ~ / myOtherdirectory / files / data.txt '. O ideal seria encontrar as diferenças entre o arquivo que estou vendo e todos os outros arquivos que ele poderia ser. Ele não restringe os diretórios a serem observados e não obtém o caminho da cópia.