重命名与目录名同名的文件

发布于 2024-12-27 13:48:54 字数 518 浏览 0 评论 0原文

我的目录结构如下

dir----|
       |
       |--dir1\ some\ thing--result.pdf
       |
       |--dir2\ some\ thing--result.pdf
       |
       |--dir3\ some\ thing--result.pdf
       |

每个子目录中的文件名是result.pdf。

其中目录 dir1 dir2 dir3 的名称中包含空格。 我无法理解的内容(我正在编写 bash 脚本)如何将此目录名称放入变量中并重命名 result.pdf

相同的名称重命名每个文件 result.pdf

   #!/bin/bash
    for i in *;do
    cd $i
    mv result.pd $i.pdf
    cd ..
    done

我想用与目录 name.pdf空格 目录名称中产生了问题。如何克服这个问题?

I have a directory structure as follows

dir----|
       |
       |--dir1\ some\ thing--result.pdf
       |
       |--dir2\ some\ thing--result.pdf
       |
       |--dir3\ some\ thing--result.pdf
       |

The file name in each subdirectory is result.pdf.

Where as directories dir1 dir2 dir3 have blank spaces in their name.
What I am not able to understand (I am writing a bash script) how do I take this directory name in variable and rename result.pdf

I want to rename each of this file result.pdf with same name as directory name.pdf

   #!/bin/bash
    for i in *;do
    cd $i
    mv result.pd $i.pdf
    cd ..
    done

blank spaces in directory names are creating problems.How to over come this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓦然回首 2025-01-03 13:48:54

尝试引用这些名字:

for i in *; do
  mv "$i/result.pdf" "$i/$i.pdf";
done

Try to quote the names:

for i in *; do
  mv "$i/result.pdf" "$i/$i.pdf";
done
爱要勇敢去追 2025-01-03 13:48:54

这句单行话怎么样——

for i in *; do mv "$i/result.pdf" "$i/$i.pdf" ; done

How about this one-liner -

for i in *; do mv "$i/result.pdf" "$i/$i.pdf" ; done
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文