我熟悉如何使用 PHP 来解决这个问题,但是我想多练习一下 Bash 脚本。
任务是删除文件夹中的所有文件,该文件夹本身包含子文件夹(包含文件)。这些文件通常是 .pdf(或某些变体:PDF、Pdf、pDf 等),但有时也可能有其他文件类型,包括我目前不知道的扩展名。
这是我目前得到的结果。它回显了文件名,但如果我发出 rm $i,系统会在每个文件上返回未找到的文件。
for i in `ls -bRC1 /foo/temp_folders/* ` ; do echo $i ; rm $i ; done
发出 rm $i 时如何强制使用绝对路径?
答案1
Per Zoredache...为什么不呢:
find /foo/temp_folders/ -type f -iname * -exec rm {} +
编辑:将尾随的 \; 更改为 + 以提高性能,如上所述这里
答案2
find -exec 在处理大量文件时会很慢。我建议:
find /foo/temp_folders -type f -print0 | xargs -0 rm