Linux: 如何删除文件夹中除指定名称以外的所有文件?
Linux: how to remove all the files in a folder except ones with specific names?
我在 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_
以外的所有文件
您可以使用 find
命令及其内置的删除功能,但如果您只是 $ cp /path/to/dir/*15.0_10.0_T0_* /other/dir
然后删除原始目录,可能会更简单。然后您可以移动新目录来代替原来的目录。您可以使用 $ rm -rf /path/to/dir
.
一次删除旧目录及其所有内容
例如,如果您不想删除包含 15.0_10.0_T0_ 的文件,您可以使用 find:
find . -type f ! -name '*15.0_10.0_T0_*' -delete
删除请求文件以外的所有内容的另一种变体:
ls --ignore="*15.0_10.0_T0_*" | xargs rm
或缩短,不要询问并删除 dir 版本(小心 :)):
ls -I "*15.0_10.0_T0_*" | xargs rm -rf
使用 mv /dire/15.0_10.0_T0_* 到目标目录
然后使用 sudo rm -rf 目录名删除整个目录。
希望有用。
我在 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_
您可以使用 find
命令及其内置的删除功能,但如果您只是 $ cp /path/to/dir/*15.0_10.0_T0_* /other/dir
然后删除原始目录,可能会更简单。然后您可以移动新目录来代替原来的目录。您可以使用 $ rm -rf /path/to/dir
.
例如,如果您不想删除包含 15.0_10.0_T0_ 的文件,您可以使用 find:
find . -type f ! -name '*15.0_10.0_T0_*' -delete
删除请求文件以外的所有内容的另一种变体:
ls --ignore="*15.0_10.0_T0_*" | xargs rm
或缩短,不要询问并删除 dir 版本(小心 :)):
ls -I "*15.0_10.0_T0_*" | xargs rm -rf
使用 mv /dire/15.0_10.0_T0_* 到目标目录 然后使用 sudo rm -rf 目录名删除整个目录。 希望有用。