У меня есть 2 папки,
папка A с файлами [fileA, fileB, fileC, fileD] и папка B, содержащая файлы [fileA, fileB, fileC, fileD, fileE, fileF, fileG, fileH, fileI, fileJ, fileK]
Я не знаю какого-либо способа увидеть, какие файлы находятся в папке A, но не в папке B.
Однако, если пометить и скопировать все файлы из папки B в папку A, вы увидите «Уже существует» и получите возможность пропустить (это означает, что он не будет копировать уже существующий файл в папке A из папки B ) или перезаписать (перезаписать файлы из папки B в папку A)
На первый вопрос можно ответить комбинацией ls и diff:
Давайте создадим несколько файлов:
dennis@lightning:/tmp$ mkdir A B
dennis@lightning:/tmp$ touch A/{c,d} B/{a,b,c,d}
И теперь мы их рассмотрим:
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
Что касается вопроса 2:
cp -n B/* A
Со страницы руководства:
-n, --no-clobber
do not overwrite an existing file (overrides a previous -i option)
Таким образом, будут скопированы только отсутствующие файлы.