gpt4 book ai didi

Linux - 如何从每个文件夹递归复制 N 个文件并保持相同的文件夹结构

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:44 27 4
gpt4 key购买 nike

我需要从每个子文件夹中递归复制 10 个文件/图像。

/dir1 
├── subdir1
│ ├── file1
│ └── fileN

├── subdir2
│ ├── file1
│ └── fileN

├── subdir3
│ ├── file1
│ └── fileN

└── subdirN
├── file1
└── fileN
...

结果应该是:

/newdir1 
├── subdir1
│ ├── file1
│ └── file10

├── subdir2
│ ├── file1
│ └── file10

├── subdir3
│ ├── file1
│ └── file10

└── subdirN
├── file1
└── file10
...

目录结构应该是相同的,但每个文件夹应该有最大。每个原始文件夹中的 10 个随机文件。

如何使用 shell 脚本执行此操作?

最佳答案

我猜你不想复制所有文件(cp -r 命令建议),而只想复制 n 个文件。

假设我们有一个名为 foo 的目录,需要将 n=10 个文件从每个子目录移动到名为 bar 的特定位置。因此,shell 脚本循环将如下所示。

#!/bin/bash

for subdir in $(find ~/foo -type d); do
subdir_relative=$(echo $subdir | sed 's:.*foo/::g')
mkdir "$subdir_relative"
for file in $(find "$subdir" -type f | head -n 10); do
cp "$file" "~/bar/$subdir_relative/"
done
done

关于Linux - 如何从每个文件夹递归复制 N 个文件并保持相同的文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40085308/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com