0

我有一个文件夹“masterfolder”,其中包含带有编号命名方案的子文件夹:

\masterfolder\S01 \masterfolder\S02 \masterfolder\S03 \masterfolder\S04 \masterfolder\S05

现在我想查找并删除特定编号以下的所有文件夹,例如 S03。这意味着,S03、S04、S05 等不应该被删除,S01 和 S02 应该被删除。

我通常使用此命令来查找和删除特定文件夹:

find "/mnt/USBDRIVE/masterfolder" -type d -name "S02" -exec rm -rf '{}' \;

我尝试自己找到解决方案,但我找到的唯一方法是删除除我知道我想保留的号码之外的所有内容:

find "/mnt/USBDRIVE/masterfolder" -mindepth 1 -maxdepth 1 -type d -not -name "S03" -exec rm -rf '{}' \;

这将保留 S03,但删除所有其他。我想保留 S03 和任何其他编号高于 S03 的文件夹。

任何想法表示赞赏。

4

1 回答 1

0

有很多方法可以解决这个问题。

由于您的数字是零填充的,因此最简单的方法是将目录列表发送到按字母顺序排序的文件中。然后删除您想要忽略的那些(它们都将在一起),进行全局更改以将“rm”添加到每行的开头,并将文件作为脚本运行。

这将花费您不到 30 秒的时间。任何程序化解决方案都需要更长的时间。

于 2018-09-14T23:07:55.913 回答