因此,我有一个主文件夹,其中包含大约 800 个子文件夹(例如 1、2、3...),其中包含许多文件,但我想删除除以 *tsv 结尾的文件之外的所有其他文件。有没有办法通过 bash 脚本来做到这一点?
主文件夹
文件夹 #1
- 示例.txt
- 样本2.txt
- 测试.tsv
- 样本.tsv
文件夹 #2
- 示例.txt
- 样本2.txt
- 测试.tsv
- 样本.tsv
等等..
先感谢您。
答案1
Linux:
您可以使用此命令:
find . ! -name '*.tsv' -type f -exec rm -f {} +
此命令将删除除与 flag 后的模式匹配的文件-name
('*.tsv'
在本例中)之外的所有文件。所有文件夹将被保留。
(答案改编自这个帖子。
视窗:
我使用以下命令使其工作:
for /R %f in (*.*) do @echo %f | findstr /v ".tsv" | for /f %f in ('more') do @del "%f"
可能还有更优雅的方法,但它可以完成工作。