Como encontrar um arquivo com o caminho parcialmente especificado?

4

Estou tentando encontrar todos os meus arquivos .txt e .csv no meu backup (a máquina do tempo da Apple).

A estrutura dos diretórios de backup é assim:

/machine name/date/Macintosh HD/ 

O acima contém todos os arquivos da minha máquina nesse dia. Eu tenho muitos desses diretórios como a unidade de backup contém coisas de várias máquinas, nos últimos 3 anos.

O que me interessa é encontrar meu texto e arquivos CSV, por exemplo, arquivo:

/mac1/2014-08-31-173253/Macintosh HD/Users/me/Documents/work/file1.txt

Portanto, preciso encontrar todos os arquivos .txt que estão em algum lugar no caminho / Users / me

    
por fluffy 22.12.2014 / 17:14

2 respostas

4

Você pode usar find , desde que esteja disponível:

$ find "/mac1/2014-08-31-173253/Macintosh HD" -wholename "*/Users/me/*.txt" -or -wholename "*/Users/me/*.csv"

Isso pesquisará /mac1/2014-08-31-173253/Macintosh HD para arquivos que contenham o padrão */Users/me/*.(txt|csv) em seus caminhos.

    
por 22.12.2014 / 17:16
-1

Provavelmente você pode fazer:

set --
for d in /mac[123]/201[1-4]*'/Macintosh HD/Users/me/Documents/work/'
do  for g in .txt .csv
do  set -- "$d"*"$g"
    [ -e "$1" ] || shift
done

Dessa forma, você obteria uma matriz de todos os nomes de arquivos em "$@" - mas precisaria fazer o glob no bit de diretório - para o qual o /mac[123]/ serve, e estou apenas adivinhando nos nomes desses diretórios.

    
por 22.12.2014 / 20:32