从两个文件夹中删除公用文件

时间:2012-02-28 12:57:46

标签: ubuntu command-line

我有两个文件夹,在那些文件夹中我有一些常用文件。现在我想从第一个文件夹中删除常用文件。  就像我有两个文件夹名称folder1和folder2。   现在在folder1我有一个,b,c文件,在folder2我有c,b w,d文件。我想删除常用文件意味着文件夹中的b和c文件。

我可以通过命令行找到公共文件

diff -ur folder1 folder2

但我无法删除ubuntu命令行中第一个文件夹中的常用文件。

2 个答案:

答案 0 :(得分:4)

有一个更简单的解决方案:

for f in `ls -1 folder1`; do rm folder2/$f; done;

答案 1 :(得分:1)

find FIRSTDIR SECONDDIR -type f -maxdepth 1 -exec basename {} \; | \
    sort | \
    uniq -d | \
    sed 's_.*_rm FIRSTDIR/\0_' | \
    sh
  1. 因此它首先检查FIRSTDIRSECONDDIR是否有任何文件(并且仅在确切的目录中,而不是递归),然后删除它的路径部分。
  2. 对先前的输出进行排序
  3. 删除仅出现一次的项目(仅剩余非uniq元素)
  4. 从中生成rm
  5. 已执行,我建议首先省略最后一行以检查将要执行的操作。