下面的命令找到了以下目录。
$ find tmp/ -name "date=*" -type d
tmp/year=2022/month=05/date=27
tmp/year=2022/month=05/date=21
tmp/year=2022/month=05/date=29
tmp/year=2022/month=05/date=24
tmp/year=2022/month=05/date=31
tmp/year=2022/month=06/date=01
tmp/year=2022/month=06/date=02
我需要通过将date=
替换为day=
来重命名目录。
find tmp/ -name "date=*" -type d -exec rename s/date=/day=/g "{}" +;
然而,该命令并不重命名目录?
我需要在Python中实现它。
tmp/2022/06/02
这样的结构呢? - accdias... -exec bash -c 'for f; do mv "$f" "${f//date=/day=}"; done' _ {} +
,但这仍然依赖于 Bash,当然 Bash 是相当普遍但不是标准的。 (双斜杠//
匹配你的/g
标志,但对于这些示例来说似乎是多余的;它表示如果在单个文件名中有多个匹配项,则替换所有匹配项。) - tripleee'data=' 'day='
)。但是,当我使用Pythonsubprocess.run(['find', 'tmp/', '-name', '"date=*"', '-type', 'd', '-exec', 'rename', 'date=', 'day=', '"{}"', '+;'])
运行它后,它就不起作用了? - ca9163d9pathlib
而无需调用shell。 - accdias