如何删除不同文件夹中的一组相同的扩展文件

时间:2012-11-27 21:40:02

标签: linux shell command-line terminal

我想在笔式驱动器的不同文件夹中删除一组具有不同文件名的相同扩展文件,我尝试了以下推荐,但它不起作用。

$sudo find /media/<Pendrive> *.jpg | rm -rf *

有人可以让我知道从我的Pendrive中删除文件的确切命令。

1 个答案:

答案 0 :(得分:2)

你可以写:

sudo find '/media/<Pendrive>' -name '*.jpg' -exec rm -f '{}' ';'

  

好的,如果我将所有文件路径导出到文本文件,现在我想通过使用awk推荐来删除这些文件,那么在这种情况下是可行的。

如果文本文件名为all_file_paths.txt,那么您可以写:

while IFS= read -r file_to_delete ; do
  if [[ "$file_to_delete" == *.jpg ]] ; then
    sudo rm -f "$file_to_delete"
  fi
done < all_file_paths.txt

(其中命令IFS= read -r file_to_delete从标准输入中读取一行 - 在这种情况下来自all_file_paths.txt - 并将该行存储在变量$file_to_delete中)。

请注意,如果任何文件路径包含换行符,则此方法会出错。没有可靠的方法,因为你已经放弃了文件路径的结束与#34;和#34;文件路径中的换行符&#34;当您创建all_file_paths.txt