我想从目录中删除所有文件,除了一个。我在这里找到了我的解决方案。此解决方案正在使用命令
shopt -s extglob
Run Code Online (Sandbox Code Playgroud)
我想知道这个命令到底在做什么,一些后端知识。我还对这个答案添加了评论,但直到现在还没有得到回复。作为 Ubuntu 的新用户,我很想知道这个命令在做什么。
我在其中一个脚本的末尾使用以下代码来计算我已处理并移动到该目录中的文件数。
# Report on Current Status
echo -n "Cropped Files: "
ls "${Destination}" | wc -l
Run Code Online (Sandbox Code Playgroud)
我的问题在于我如何处理重复文件。截至目前,我首先检查文件是否存在(因为我的脚本对我正在处理的源文件具有破坏性)。如果它检测到该名称的文件已被处理,我会按如下方式更改文件名。
重复文件:foo.pdf
更改名称:foo.x.pdf
如果有 foo.x.pdf,那么我再次重命名为 foo.xx.pdf。根据需要重复。我打算稍后再去评估每个“版本”,然后选择最好的一个来保存。但我的问题就在这里。我想计算不包含 .x 的文件数。.xx。等等。如何将这些从ls输出中剔除,以便wc -l仅计算唯一文件?
TL;DR:如何获取给定目录中文件名中不包含给定子字符串的文件数?