Linux:如何删除文件夹中除具有特定名称的文件以外的所有文件?

时间:2018-07-26 12:10:29

标签: linux rm

我在Linux中有一个文件夹,其中包含一些模拟结果的.csv文件。

文件名如下:

run_0_0.020000_0.010000_15.0_10.0_T0_RealNet.csv
run_0_0.030000_0.090000_10.0_10.0_T0_RealNet.csv
run_0_0.030000_0.080000_12.0_10.0_T0_RealNet.csv

我想删除除带有15.0_10.0_T0_的文件以外的所有文件

4 个答案:

答案 0 :(得分:3)

您可以使用find命令及其内置的-delete功能,但如果仅$ cp /path/to/dir/*15.0_10.0_T0_* /other/dir然后删除原始目录,则可能会更简单。然后,您可以将新目录替换原来的目录。您可以使用$ rm -rf /path/to/dir一次删除旧目录及其所有内容。

答案 1 :(得分:1)

例如,如果您不想删除包含15.0_10.0_T0_的文件,则可以使用find:

find . -type f ! -name '*15.0_10.0_T0_*' -delete

答案 2 :(得分:0)

另一个删除请求文件以外的所有内容的变体:

ls --ignore="*15.0_10.0_T0_*" | xargs rm

或者简短地说,不要问也不要删除目录版本(请小心:)):

ls -I "*15.0_10.0_T0_*" | xargs rm -rf

答案 3 :(得分:-2)

使用mv /dire/15.0_10.0_T0_*到目标目录 然后使用sudo rm -rf目录名删除整个目录。 希望它能起作用。