Answers:
假设您要运行:
rm *.txt
您可以运行:
echo rm *.txt
甚至只是:
echo *.txt
查看rm
将删除哪些文件,因为它是扩展而*.txt
不是的外壳rm
。
这对您无济于事rm -r
。
如果您要递归删除文件和目录,则可以使用find
代替rm -r
,例如
find . -name "*.txt" -print
然后,如果它可以满足您的要求,请将更改-print
为-delete
:
find . -name "*.txt" -delete
tree
。
find . -name "*.txt" -delete
似乎不是递归的。删除了所有文件,但没有删除列出的目录-print
find . -type d -empty -delete
find
不会删除仍包含文件(相当于目录rm dir/
无-r
)。你必须先清空目录-或使用find
到-exec rm
用适当的选项来做到这一点。例如find . -depth -name "*.txt" -exec rm -r {} +
echo rm *.txt
方法似乎有一个缺点。它将结果显示在串联列表中(一个长字符串,前一个文件之后是一个文件),而不是垂直列表。有什么方法可以使输出显示在垂直列表中(每行一个文件)?(更新:我看到该find
方法完成了我所要求的操作。因此,我将继续执行该操作。)
您可以使用ls
列出所有将被删除的文件rm
:
ls ../path/*.txt
如果您需要列出来查看将以递归方式删除的文件rm
,则使用-R
带有ls
以下标记的标志:
ls -R ../path/*.txt
ls */*/*.txt
-R
选项。