如何查找不在特定文件夹中的文件

如何查找不在特定文件夹中的文件

我有 2 个文件夹,

文件夹 A 包含文件 [fileA, fileB, fileC, fileD] 文件夹 B 包含文件 [fileA, fileB, fileC, fileD, fileE, fileF, fileG, fileH, fileI, fileJ, fileK]

  1. 我目前在文件夹A中。如何知道文件夹B中但不在文件夹A中的文件列表。
  2. 如何将所有这些额外的文件复制到文件夹 A?

答案1

问题一可以通过 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)

因此这将只复制丢失的文件。

答案2

我不知道有什么方法可以查看哪些文件在文件夹 A 中但不在文件夹 B 中。

但是,如果标记并将所有文件从文件夹 B 复制到文件夹 A,您将看到“已存在”信息,并可以选择跳过(意味着不会从文件夹 B 复制文件夹 A 中已存在的文件)或覆盖(将文件夹 B 中的文件覆盖到文件夹 A 中)

相关内容