我有 2 个文件夹,
文件夹 A 包含文件 [fileA, fileB, fileC, fileD] 文件夹 B 包含文件 [fileA, fileB, fileC, fileD, fileE, fileF, fileG, fileH, fileI, fileJ, fileK]
- 我目前在文件夹A中。如何知道文件夹B中但不在文件夹A中的文件列表。
- 如何将所有这些额外的文件复制到文件夹 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 中)