这是我拥有并希望使用附加条件进行修改的命令:
find /home/user/backups/ -mindepth 2 -maxdepth 3 -name "*~EEEE000.tif" -print
这是的输出ls /home/user/backups/
:
backup20170101_somerandomstring
backup20170115_somerandomstring
backup20170230_somerandomstring
backup20170305_somerandomstring
backup20170408_somerandomstring
backup20170521_somerandomstring
.
.
.
backup20190111_somerandomstring
backup20190130_somerandomstring
backup20190209_somerandomstring
backup20190301_somerandomstring
backup20190303_somerandomstring
backup20190311_somerandomstring
backup20190313_somerandomstring
backup20190412_somerandomstring
.
.
.
backup20200102_somerandomstring
backup20200103_somerandomstring
backup20200105_somerandomstring
backup20200110_somerandomstring
.
.
.
我只想搜索 2019-03-10 之后生成的目录。所以这可以很容易地被认为是目录 ,其名称中的数字大于20190310
单词后面的backup
数字。
我可以瘦seq
但不知道如何将它与find一起使用。我相信那里有更好的选择。
seq -f "backup%1.0f" 20190310 20200131
使用
zsh
外壳程序,文件名通配模式<n-m>
匹配范围内的数字n
以m
包含在内。图案
将匹配
/home/user/backups
以字符串开头的所有名称,backup
然后紧跟一个20190311
大于或等于一个数字,然后是下划线和可能更多的字符。仅匹配目录:
将此与您的原始
find
命令一起使用:这将在 glob 匹配的每个目录中搜索以
~EEEE000.tif
(在特定目录深度)结尾的文件或目录的名称。它将打印找到的路径名。已调整搜索深度以考虑搜索路径根的额外深度。没有
find
, 并且只打印常规文件的名称:不过,这也将解析到路径中目录的符号链接。