Как найти файлы, которых нет в определенной папке

У меня есть 2 папки,

папка A с файлами [fileA, fileB, fileC, fileD] и папка B, содержащая файлы [fileA, fileB, fileC, fileD, fileE, fileF, fileG, fileH, fileI, fileJ, fileK]

  1. Я сейчас нахожусь в папке A. Как узнать список файлов, которые находятся в папке B, но отсутствуют в папке A.
  2. Как скопировать все такие дополнительные файлы в папку A?
0
задан 6 February 2013 в 18:22

2 ответа

Я не знаю какого-либо способа увидеть, какие файлы находятся в папке A, но не в папке B.

Однако, если пометить и скопировать все файлы из папки B в папку A, вы увидите «Уже существует» и получите возможность пропустить (это означает, что он не будет копировать уже существующий файл в папке A из папки B ) или перезаписать (перезаписать файлы из папки B в папку A)

0
ответ дан 6 February 2013 в 18:22

На первый вопрос можно ответить комбинацией 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)

Таким образом, будут скопированы только отсутствующие файлы.

0
ответ дан 6 February 2013 в 18:22

Другие вопросы по тегам:

Похожие вопросы: