Bash删除并复制多个扩展名的多个文件

时间:2016-02-04 15:35:58

标签: bash

我有点陷入困境。我想将某些文件从一个目录复制到另一个目录(非递归)。

我有多个文件,其中包含.txt.so.so.mem.so.lib.lib等扩展程序以及名为{{1}的目录中的多个目录}。我想非递归地(仅从基本目录)将所有文件复制到另一个名为base的目录。

我做了以下事情:

test

在上面的尝试中,除了Try 1 pushd $base find -not -name '*.so' -not -name '*.so.*' -type f -print() -exec rm -f {} + cp -f $base/* $test 以外,所有查找都已删除所有内容,即使我已编写.so,即文件-not -name '*.so.*'.so.mem也不应删除。

我做错了吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那就是你想要的:

mkdir test
# move all required files to the 'test' directory
mv base/*.txt base/*.so base/*.so.* base/*.lib test
# delete all remaining files from the 'base' directory
rm base/*

最后,您将拥有一个空base目录(假设没有隐藏文件)和test目录,其中包含*.txt*.so和{{1}文件。