具有以下文件层次结构:
dir
├── dirA
│ └── snapshot
│ └── subdir1
│ └── file1
└── dirB
└── snapshot
└── subdir2
└── file2
我想在单个命令中从每个快照/子目录目录移动文件到快照的父目录。那将是:
dir
├── dirA
│ └── file1
│ └── snapshot
│ └── subdir1
└── dirB
└── file2
└── snapshot
└── subdir2
我已经尝试过mv dir/*/snapshot/*/* ../../
,但由于目标部分../../
是相对于工作目录的,所以它显然不起作用。
是否可以使用 bash 命令(因为我从未编写过一行 bash 脚本)?
答案1
基于@Don_Christ的敏锐观察,这个答案被编辑,从而保存了一个子shell:
for i in dir/*/snapshot; do
mv "$i"/*/* "$i"/..
done