Vamos supor que seus nomes de arquivos sejam caminhos absolutos e que todos os arquivos estejam em um diretório, e você deseje encontrar apenas arquivos (não diretórios, arquivos especiais, etc.) e não possui espaços ou caracteres especiais em seu arquivo. nomes.
sort < yourlist >yourlist_sorted
find <absolute path to dir> -type f |sort |comm -1 -3 - yourlist_sorted
Imprimirá linhas do seu arquivo que não podem ser encontradas com o resultado, por exemplo. que não estão no seu disco.
A escolha de quais arquivos são exibidos é controlada pelo comando comm e pelas duas primeiras opções. o comando comm
, vê dois arquivos stdin (lista de localização) e sua lista o controle de opções que o conjunto é filtrado (removido). -1 filtra linhas apenas no arquivo 1, -2 somente no arquivo 2, -3 linhas no arquivo 1 e 2
Então,
- -2 -3 Imprime arquivos que são encontrados no disco e não na sua lista
- -1 -2 Imprime arquivos encontrados no disco e na sua lista. < == O que você quer
- -1 -3 Imprime arquivos que estão apenas na sua lista e não no disco.