分页: 1 / 1

怎么删除文件夹内除了某电影之外的其他文件

发表于 : 2012-05-23 0:19
anth
有没有简单一点的方法删除/media/temp文件夹内除了2011.avi之外的所有文件和子文件夹,现在用find . -maxdepth 1 ! -name 2011.avi ! -name ".*"来凑合用,但是很不方便,我不喜欢用find,如果能用grep达到同样的功能就好了,因为我更加习惯ls -l | grep这种格式

回2楼
好用,另外,又认真看了一遍man grep,发现还有个-v参数刚好适合我的需要
anth@cn:~$ als
bash-debian.anth
Desktop
Documents
Downloads
lyrics
Music
Pictures
Public
startup-debian.anth
Templates
Videos
anth@cn:~$ als | grep -v anth
Desktop
Documents
Downloads
lyrics
Music
Pictures
Public
Templates
Videos

Re: 怎么删除文件夹内除了某电影之外的其他文件

发表于 : 2012-05-23 0:29
lilydjwg
zsh 的话:

代码: 全选

print -l ^2011.avi
先试试看你目前的设置能不能行(因为 zsh 的兼容性选项太多了,一开始必须先试试)。
没问题的话就执行:

代码: 全选

rm -r ^2011.avi
^ 表示求补集,A~B 是求差集。

如果你不使用 zsh 的话,最直接的方法就是装之 :em05

Re: 怎么删除文件夹内除了某电影之外的其他文件

发表于 : 2012-05-24 19:07
alober
move 出来 rm 目录 再 move 回去行吗?

Re: 怎么删除文件夹内除了某电影之外的其他文件

发表于 : 2012-05-26 23:07
feiliang1983
一般来说rename不需要拷贝文件内容,如果你需要保留的文件位于上层目录且数目比较少的话,将目标文件重命名为隐藏文件,然后执行rm -rf 即可。
如果你需要保留目录结构的话,最好是创建一个隐藏的临时目录,发现有需要保留的文件就将其及其上层目录移到指定目录下;在处理完成后再移回来

Re: 怎么删除文件夹内除了某电影之外的其他文件

发表于 : 2012-05-27 13:50
naturalaw
如果只是一个文件,就不要自找麻烦了。直接把它挪走,删除完再挪回来