📌  相关文章
📜  将文件夹的名称附加到 linux 中的文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:39:18.554000             🧑  作者: Mango

在 Linux 中向文件附加文件夹名称 - Shell/Bash

在 Linux 中,我们经常需要将某个文件的文件夹名称附加到文件名中。 Shell/Bash 提供了一些工具和技巧,可以轻松地完成此任务。

前提条件

在继续之前,您需要了解以下内容:

  • 如何在 Linux 中打开终端
  • 基本 Shell/Bash 命令和语法
方法
1. 使用 basename 命令

basename 命令用于从给定路径中提取文件名。我们可以使用该命令获取文件夹名称,并将其附加到文件名中。以下是一个示例命令:

$ cd /path/to/folder/
$ for file in *; do mv "$file" "$(basename "$(pwd)")-$file"; done

将当前工作目录更改为包含文件的文件夹。然后,我们正在遍历文件夹中的每个文件,并将文件重命名为“文件夹名称-文件名”。我们使用 basename 命令获取文件夹名称。

2. 使用 find 命令

find 命令用于在文件系统中查找文件和目录。 我们可以使用该命令获取每个文件的所在目录,并将其附加到文件名中。以下是一个示例命令:

$ find /path/to/folder/ -type f -exec sh -c 'mv "$0" "${0%/*}/$(basename "$(dirname "$0")")-${0##*/}"' {} \;
3. 使用 awk 命令

awk 命令用于处理文本文件。我们可以使用该命令获取文件的所在目录,并将其附加到文件名中。以下是一个示例命令:

$ find /path/to/folder/ -type f | awk -F/ '{system("mv \"" $0 "\" \"" $0 "\".bak"); system("mv \"" $0 "\".bak \"" $(NF-1)"-"$NF"\"")}'
结论

以上介绍的方法可以轻松地将文件夹名称附加到文件名中。要获得更多 Shell/Bash 相关信息,请查阅 Shell/Bash 文档。