Como encontrar arquivos que não estão em uma determinada pasta

0

Eu tenho 2 pastas,

folderA tendo arquivos [fileA, fileB, fileC, fileD] pasta B com arquivos [arquivoA, arquivoB, arquivoC, arquivoD, arquivoE, arquivoF, arquivoG, arquivoH, arquivoI, arquivoJ, arquivoK]

  1. Estou atualmente na pasta A. Como faço para saber a lista de arquivos que estão na pasta B, mas não estão na FolderA.
  2. Como copiar todos esses arquivos extras para folderA?
por Joe 06.02.2013 / 15:22

2 respostas

4

A primeira pergunta pode ser respondida com uma combinação de ls e diff:

Vamos criar alguns arquivos:

dennis@lightning:/tmp$ mkdir A B
dennis@lightning:/tmp$ touch A/{c,d} B/{a,b,c,d}

E agora os diferenciamos:

dennis@lightning:/tmp$ diff -u <(ls A) <(ls B)
--- /dev/fd/63  2013-02-06 15:43:21.827691498 +0100
+++ /dev/fd/62  2013-02-06 15:43:21.827691498 +0100
@@ -1,4 +1,2 @@
+a
+b
 c
 d

Quanto à pergunta 2:

  cp -n B/* A

Na página de manual:

   -n, --no-clobber
          do  not  overwrite  an  existing  file  (overrides a previous -i option)

Então, isso copiará apenas os arquivos ausentes.

    
por Dennis Kaarsemaker 06.02.2013 / 15:45
0

Eu não sei de nenhuma maneira de ver quais arquivos estão na pasta A, mas não na pasta B.

No entanto, se marcar e copiar todos os arquivos da pastaB para a pastaA, você será apresentado por um "Já existe" e obterá as opções para pular (ou seja, não copiará o arquivo já existente na pastaA da pastaB) ou substituir (sobrescrever os arquivos da pasta B para pastaA)

    
por Steffen Christensen 06.02.2013 / 15:28