Se as suas listas estiverem classificadas, você poderá usar comm -23
para obter os elementos exclusivos da primeira lista. Se não estiverem, você pode usar grep
like
find -type f | grep -vFxf /tmp/alreadyCopied
-
-v
encontrará todas as linhas sem correspondência -
-F
diz para usar as strings como strings fixas, não como padrões -
-x
corresponde à linha inteira em vez da string em qualquer lugar da linha -
-f /tmp/alreadyCopied
leu as linhas para correspondência do arquivo fornecido
Você precisará garantir que os caminhos correspondam, por isso, se find
estiver produzindo ./dir1/file1
, que precisa ser a mesma sequência em /tmp/alreadyCopied
Observe, porém, que essa abordagem geral terá problemas se, digamos, você tiver um nome de arquivo com \n
. Você provavelmente poderia refazer tudo em find
com algo como
find . -type f -exec test ! -f destdir/{} \; -exec cp -v --parents {} overflowdestdir \;