![如何仅删除目录的内容?](https://linux22.com/image/24633/%E5%A6%82%E4%BD%95%E4%BB%85%E5%88%A0%E9%99%A4%E7%9B%AE%E5%BD%95%E7%9A%84%E5%86%85%E5%AE%B9%EF%BC%9F.png)
我在一个文件夹中:/var/myfolder
.
里面还有一些其他文件夹,例如:/var/myfolder/A/
/var/myfolder/B/
`/var/myfolder/C/
等。
每个里面都有一些具有随机名称的文件。如何删除里面所有文件夹中的所有文件/var/myfolder
?
结构(内部的所有目录,例如 A、B、C 等/var/myfolder
)应保持不变。
答案1
尝试:
find /var/myfolder -type f -delete
这将获取 /var/myfolder 下的所有常规文件并删除它们,只留下目录。
答案2
对于 zsh,使用.
全局限定符仅匹配常规文件:
rm -- **/*(.)
这将递归删除当前目录及其子目录中的所有(非隐藏)常规文件。添加D
glob 限定符也可以删除隐藏的常规文件(以及隐藏目录中的常规文件)。
答案3
你可以跑rm */*
进去/var/myfolder
答案4
rm var/myfolder/*/*
将删除子文件夹内的所有内容,而不触及子文件夹本身。
第一个*
是其自身的子目录myfolder
(A
, B
, ...)。第二个是针对、等*
中的文件。A
B
如果里面有更多文件夹A
, B
等等。首先运行:
rm /var/myfolder/*/*/*
然后运行rm /var/myfolder/*/*
。