我有一个嵌套的目录结构,最底层是.jpg文件的文件夹。我想从这个结构中的每个子目录(有数千个)中取出一个.jpg文件。我该怎么做?我可以复制所有文件,但不能只复制其中的一部分。
pengsaosao1#
从许多子目录中的每个子目录中获取一个随机文件:
find . -type d -links 2 -exec /bin/bash -c ' dest=$1 ; shift for dir ; do cp "$( shuf -en1 "$dir"/*.jpg )" "$dest" done ' _ "$dest" {} +
find . -type d -links 2
shuf
prdp8dxp2#
只要你的文件和目录名不包含换行符,类似这样的东西(未经测试)就可以工作:
find . -type f -name '*.jpg' -print | shuf | awk '{dir=$0; sub("/[^/]+$","",dir)} !seen[dir]++' | xargs -I {} cp {} /some/directory
2条答案
按热度按时间pengsaosao1#
从许多子目录中的每个子目录中获取一个随机文件:
find . -type d -links 2
搜索没有子目录的目录shuf
从每个目录中选取一个jpg并将其复制到目标文件夹prdp8dxp2#
只要你的文件和目录名不包含换行符,类似这样的东西(未经测试)就可以工作: