gpt4 book ai didi

windows - 重命名具有非常大目录结构的空间的文件

转载 作者:可可西里 更新时间:2023-11-01 11:29:03 25 4
gpt4 key购买 nike

我已经通读并尝试了这里的许多关于如何在嵌套目录结构中用空格重命名文件的答案。但是,它们似乎不适用于我的情况。他们都是段错误。

在 32,768 个目录的目录结构中,我只有将近 1,000,000 个文件。这也在 Windows(Server 2008 R2)上,我正在运行 MINGW32 给我 Bash 3.1。

目录位于类似 00/00/file1 01/00/file2 的结构中,其中每个子目录“系列”从 00 到 zz 不等。我相信目录结构只有 2 层深,但我可能是错的。从 Windows 资源管理器的“属性”生成文件计数大约需要 45 分钟。

我认为这里发布的答案是段错误,因为它们正在耗尽内存构建或遍历这些目录。这是我在此处发布之前的最后一次尝试:

find . -maxdepth -1 -mindepth 1 -type -d -printf '%p\n' |
while IFS= read -r g; do
find "$g" -depth -name '* *' | while IFS= read -r f ; do
mv -i "$f" "$(dirname "$f")/$(basename "$f"|tr ' ' _)
done
done

我最后一次尝试尝试至少进入第一级子目录,然后使用关于该主题的另一篇文章中的解决方案:

find . -depth -name '* *' | while IFS= read -r f ; do 
mv -i "$f" "$(dirname "$f")/$(basename "$f"|tr ' ' _)
done

您可以看到我的版本的地方只是嵌入在外部查找循环中的其他帖子的答案。然而,这也是段错误。我想尝试这个,因为在一个目录级别工作时尝试上述解决方案。

最佳答案

创建这个 shell 脚本,例如./移动.sh:

#!/bin/bash

echo mv "$1" "${1// /_}"

让它可执行。

运行:

find . -depth -name '* *' -exec ./move.sh "{}" \;

如果输出没问题,从 ./move.sh 中删除 echo

关于windows - 重命名具有非常大目录结构的空间的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25585621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com