有没有办法更改分布在 Linux 中批量目录中的批量文件的文件类型?
Is there a way to change the file type of bulk files distributed across bulk directories in Linux?
我正在尝试 运行 一个程序,该程序会查看一组文件夹,并在其中找到一种类型的文件。文件的格式是这样的
主要
SUBDIR01
FILE01.TXT
FILE02.TXT
SUBDIR02
FILE03.TXT
FILE04.TXT
问题是程序 运行 通过的文件和目录很多。而且,正如所写的那样,该程序搜索 .txt 文件。由于区分大小写,它会找到 none。我的简单解决方法是重新编写程序以搜索 .TXT 并解决问题。我还发现 "rename" 和 "mv" 可用于批量重命名文件,如果我位于它们所在的目录中。但是,还没有找到让我进入 MAIN 目录并让批量更改通过一组文件夹的方法。
我找到的最接近的东西是 find 。 -name "*.TXT" 将全部打印出来。
我觉得我已经很接近了,所以我想知道是否有人可能立即知道这个问题的解决方案。不使用上述解决方法。谢谢你的帮助。
您可以使用 find
定位文件并打印名称,然后使用 xargs
结合 rename
进行实际重命名。为避免包含空格的文件和目录名称出现问题,您应该使用 -print0
而不是 -print
和 find and add -0' to the
xargs` 命令行。请参阅下面的示例。
find . -name '*.TXT' -print0 | xargs -0 rename 's/.TXT/.other/'
我正在尝试 运行 一个程序,该程序会查看一组文件夹,并在其中找到一种类型的文件。文件的格式是这样的
主要
SUBDIR01
FILE01.TXT
FILE02.TXT
SUBDIR02
FILE03.TXT
FILE04.TXT
问题是程序 运行 通过的文件和目录很多。而且,正如所写的那样,该程序搜索 .txt 文件。由于区分大小写,它会找到 none。我的简单解决方法是重新编写程序以搜索 .TXT 并解决问题。我还发现 "rename" 和 "mv" 可用于批量重命名文件,如果我位于它们所在的目录中。但是,还没有找到让我进入 MAIN 目录并让批量更改通过一组文件夹的方法。
我找到的最接近的东西是 find 。 -name "*.TXT" 将全部打印出来。
我觉得我已经很接近了,所以我想知道是否有人可能立即知道这个问题的解决方案。不使用上述解决方法。谢谢你的帮助。
您可以使用 find
定位文件并打印名称,然后使用 xargs
结合 rename
进行实际重命名。为避免包含空格的文件和目录名称出现问题,您应该使用 -print0
而不是 -print
和 find and add -0' to the
xargs` 命令行。请参阅下面的示例。
find . -name '*.TXT' -print0 | xargs -0 rename 's/.TXT/.other/'