Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux如何使用find命令删除多个文件?_Linux_Ubuntu_Find - Fatal编程技术网

Linux如何使用find命令删除多个文件?

Linux如何使用find命令删除多个文件?,linux,ubuntu,find,Linux,Ubuntu,Find,我有一个文件树,如: . ├── 1 ├── 2 ├── 3 ├── a.txt ├── b.txt └── c.csv 现在,我使用命令: find . ! -name "*.txt" -delete 我可以删除排除*.txt 但是现在,我还需要导出c.csv 基于此,我尝试了以下命令: find . ! -name "*.txt|*.csv" -delete 但不幸的是,该命令会删除所有文件和文件夹 那么,如何排除多个*.XXX?复制名称谓词: find . ! -name "*.tx

我有一个文件树,如:

.
├── 1
├── 2
├── 3
├── a.txt
├── b.txt
└── c.csv
现在,我使用命令:

find . ! -name "*.txt" -delete
我可以删除排除*.txt

但是现在,我还需要导出c.csv

基于此,我尝试了以下命令:

find . ! -name "*.txt|*.csv" -delete
但不幸的是,该命令会删除所有文件和文件夹


那么,如何排除多个*.XXX?

复制名称谓词:

find . ! -name "*.txt" ! -name "*.csv" -delete
这是无效的:

find . ! -name "*.txt|*.csv" -delete
这是正确的写作方式(好吧,是一种相当正确的方式):


“查找并删除所有未命名为*.txt或*.csv的文件”

De Morgan会怎么说我们的两个文件solutions@Shloim:我输入了“同等正确的方法之一”:D
find . ! "(" -name "*.txt" -o -name "*.csv" ")" -delete