所以我一直想把它拉到一起。使用了不同的方法,也找到了一些部分答案,但我在这里找到的答案都没有用,或者只回答了部分问题,或类似的问题。
我有一个具有以下结构的文件夹:
nameXX.tar.gz
md5nameXX.txt
debugnameXX.txt
nameYY.tar.gz
md5nameYY.txt
debugnameYY.txt
等等...
等等,你可以看到改变的文件名的唯一部分是XX,YY等
我需要的是创建一个脚本,将所有与XX,YY等匹配的文件移动到具有相同名称的文件夹中。
所以例如我想移动所有,
nameXX.tar.gz ,
md5nameXX.txt,
debugnameXX.txt
All those would move into a folder named nameXX
详细说明那些是备份快照。每个备份快照创建3个文件。 buckup-TIMESTAMP.tar.gz; md5backup-TIMESTAMP.tXT; debugbackup-TIMESTAMP.txt。我只需要一个脚本,将所有3个文件移动到名为backup-TIMESTAMP的同一文件夹中。在简历中,YY或XX表示不同的时间戳。 -
感谢您的帮助
答案 0 :(得分:1)
我没有进行复杂的检查,但至少这可以让你从某事开始:
for name in `find . -name "*.tar.gz" | xargs sh -c 'basename $1 .tar.gz' dummy`
do
echo "Processing $name"
mkdir $name
find . -name "$name*" -type f -exec mv {} $name \;
done
此代码假设您有文件.tar.gz,按名称创建文件夹并将所有文件从该文件夹开始移动。
答案 1 :(得分:0)
在这里工作的信息不够,每次XX和YY都一样吗?如果是这样,你可以在一个单行mv命令中做每一个
mv *YY.* /folderYY