【发布时间】:2024-05-02 21:35:02
【问题描述】:
我有一个可以包含 x 个子文件夹的文件夹结构,如下所示:
- 文件夹 1
- 子文件夹 1
- 子文件夹 2
- 子子文件夹3
- 文件夹 2
我想在其父文件夹中创建一个包含子文件夹名称(附加 .file)的空文件,如下所示:
- 文件夹 1
- 子文件夹1.file(新创建的与姊妹文件夹同名的文件)
- 子文件夹 1
- 子文件夹2.file(新创建的与姐妹文件夹同名的文件)
- 子文件夹 2
- 子子文件夹3.file(新创建的与姐妹文件夹同名的文件)
- 子子文件夹3
- 文件夹 2
某些文件夹的名称中可能包含空格,因此我尝试了以下方法,但即使回显 $(dirname $dir)/$dir 似乎会产生预期结果,它也无法正常工作:
#!/bin/bash
find . -mindepth 1 -type d | while read dir
do
touch $(dirname $dir)/$dir.file
done
实现这一目标的最佳方法是什么? 提前非常感谢您!
帖子已更新以尝试更清晰
【问题讨论】:
-
我不清楚:你想要一个文件和一个同名的文件夹在同一个父文件夹中吗?
-
同一个目录下是否可以有两个同名文件?
-
尝试使用 touch $(dirname "$dir")/$(basename "$dir").file 这应该创建一个与目录同名但扩展名为 .file 的文件
-
在文件系统上,我知道你不能在同一个目录中拥有一个目录和一个同名的文件。每个目录中的所有东西都需要唯一的名称。
-
对造成的混乱表示歉意。实际上,它们不能具有相同的名称,它们可以将 .file 附加到末尾,然后我将重命名它们。我正在尝试创建与任何给定目录中的文件夹(附加 .file)同名的空文件。这些文件应与文件夹在同一级别创建。