我有一个名为outer.
outer包含一个名为的目录inner(其中包含许多相同扩展名的文件)
我cd到outer。如何删除其中的所有文件inner但保留目录inner(但为空)?
如果你想删除目录的内容而不是目录本身,你需要做的就是告诉rm删除内容:
rm inner/*
Run Code Online (Sandbox Code Playgroud)
这将删除其中的所有非隐藏文件./inner并保持目录完好无损。要同时删除任何子目录,请使用-r:
rm -r inner/*
Run Code Online (Sandbox Code Playgroud)
如果您还想删除隐藏文件,您可以这样做(假设您使用的是 bash):
shopt -s dotglob
rm -r inner/*
Run Code Online (Sandbox Code Playgroud)
最后一个命令将删除 中的所有文件和所有目录inner,但会inner保持完整。
最后,注意你不需要cd对outer运行任何这些:
$ tree -a outer/
outer/
??? dir
??? inner
??? dir
??? file
??? .hidden
3 directories, 2 files
Run Code Online (Sandbox Code Playgroud)
我现在可以rm -r outer/inner/*从当前目录运行,无需运行cd outer,它将删除除目录本身之外的所有内容:
$ shopt -s dotglob
$ rm -r outer/inner/*
$ tree -a outer/
outer/
??? dir
??? inner
2 directories, 0 files
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2352 次 |
| 最近记录: |