In Linux terminal, how to delete all files in a directory except one or two

前端 未结 5 887
傲寒
傲寒 2021-02-05 14:39

In a Linux terminal, how to delete all files from a folder except one or two?

For example.

I have 100 image files in a directory and one

5条回答
  •  感动是毒
    2021-02-05 15:03

    From within the directory, list the files, filter out all not containing 'file-to-keep', and remove all files left on the list.

    ls | grep -v 'file-to-keep' | xargs rm
    

    To avoid issues with spaces in filenames (remember to never use spaces in filenames), use find and -0 option.

    find 'path' -maxdepth 1 -not -name 'file-to-keep' -print0 | xargs -0 rm
    

    Or mixing both, use grep option -z to manage the -print0 names from find

提交回复
热议问题