我有一个大目录,里面包含许多子目录,每个子目录中有4个不同的文件(C1
,C2
,C3
,C4
)。
我想要做的是收集相同的子目录,但C1
里面只有一个文件()。所以重点是删除其他文件(C2
、C3
、C4
)并保留相同的目录层次结构。
我想要一个简单的脚本来执行此操作,因为我有一个非常大的主目录,因此不可能手动执行此操作。一个简单案例的目录结构是:sampling/time´i´/C´j´。其中 i =0.0001:10 且 j=1:4
我在集群上有这个案例。
答案1
备份父文件夹,假设新文件夹名称是parentbackup
cp parent parentbackup
然后做
find parentbackup -type f -not -name C1 -exec rm {} \;
或使用正则表达式
find parentbackup -type f -regex 'C[^1]' -exec rm {} \;
如果允许您修改父目录,则执行以下操作
编辑
find /path/to/parent -type f -regex 'C[^1]' -exec rm {} \;