gpt4 book ai didi

linux - 递归文件移动

转载 作者:太空宇宙 更新时间:2023-11-04 12:20:07 24 4
gpt4 key购买 nike

我要整理大量文件。所有文件都是 zip 存档。我有一个包含一堆子目录的主目录。所有文件都位于子目录中。文件结构如下

games/gs1/games.zip    
games/gs2/games.zip
games/gs3/games.zip

我想做的是运行一个 shell 脚本,它将转到每个子目录,创建一个名为 USA 的文件夹,找到该子目录中文件名中带有 (USA) 的所有文件,并将它们移动到新文件夹。我应该有这样的文件结构

games/gs1/USA/gs1-1(USA).zip
games/gs1/USA/gs1-2(USA).zip

games/gs2/USA/gs2-1(USA).zip
games/gs2/USA/gs2-2(USA).zip

我试过了

for d in ./*/
do
cd $d
mkdir -p USA
find . -name '*(USA)*' -exec echo mv -t ./USA {} +
done

但它只是显示所有文件都被移动到 games/USA。

最佳答案

你也可以不用 find 只用 globs 来完成:

#! /bin/bash

for dname in ./*/; do
mkdir "$dname/USA"
mv "$dname"/*USA*.zip "$dname/USA"
done

关于linux - 递归文件移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46266998/

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