在很多情况下,*实际上不可避免地会使用a-例如,rm -rf *在包含数千个子文件夹和文件的文件夹中。
但是,如果您只想从rm命令中排除一个或两个文件或文件夹,该怎么办?我GOOGLE了我的路周围,才发现好像挺复杂的解决方案,find . -depth -not \( -name 'one' -o -name 'two' \
-o -name 'three' \) -exec rm {} \;如规定在这里。
有没有可能以更简单的方式做到这一点-而不走弯路find?例如rm -rf --exclude='one' --exclude='two' --exclude='three' *喜欢在rsync还是rm -rf -e 'one','two','three' *?
甚至一般的可能性排除的东西*(所以其他命令一样cp,mv...没有实现自己的)?大概是*{'one','two','three'}什么?
mv -t /tmp one two three && rm -rf * && mv -t . /tmp/one /tmp/two /tmp/three,但是我更希望有一个解决方案,它可以明确地从*。肯定会有无法将文件移动或复制到另一个目标的情况。
                
find该--delete选项(无需rm为每个文件执行。这是不必要的开销)。