我想扫描源目录及其所有子目录中的文件名,然后将输出打印到一个文件中,例如:
ls -hR >> del.txt
(但是,我不知道如何不列出文件夹)
我不需要将文件列表保存到文件中,但我认为这将使事情变得安全和清晰。
然后,我想要一个“命令”来搜索某个目标目录及其子目录,并删除del.txt
排除文件夹中的所有匹配文件。
这些文件的名称和扩展名非常不同,因此使用正则表达式无法解决问题,因为我只想删除这些文件。此外,我应该从中删除文件的目录还有其他我想要保留的必需文件,其扩展名与源目录中的文件相同。
您可以从源目录构建文件名列表,并将它们
del.txt
作为空分隔条目保存到文件中,如下所示:然后空运行测试替换
/full/path/to/destination/
为目标目录的实际完整路径,如下所示:如果您对输出感到满意,请使用以下命令删除文件:
或者,您可以将这两个命令放在管道中以构建文件名列表,搜索它们并即时打印试运行,如下所示:
并像这样删除:
注意:一个空分隔的文件名列表可能不容易被人类阅读,但是对于其中有一个新行的文件名来说是一种更安全的方式,例如......您可以建立一个人类友好的列表以供审查(即为您阅读并保持...不要将其与上述命令一起使用),如下所示: