微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用bash将文件复制到规范文件夹

我有一个文件夹与相当数量的子文件夹。 在一些子文件夹中,我有一个folder.jpg图片。 我试图find该文件夹​​并将其复制到获得相同艺术家和专辑信息的所有其他子文件夹,然后继续下一张专辑等。

所有文件夹的结构是“ artist - year - album - [encoding @R_875_4045@ion] ”。 我已经做了一个非常简单的class轮,find了文件夹,但我有卡住了。

ls -F | grep / | while read folders;do find "$folders" -name folder.jpg; done

任何人有什么好的提示或想法如何解决这个问题或指针如何进行?

编辑:

写无限的bash循环

在bash脚本中查找find函数的结果

我可以从popen()stream打开bash吗?

Shell用户提示(Y / n)

总结数据列(单个数字)

首先,我真的很新鲜(如你不能告诉),所以请耐心等待。

好的,让我再分解一下。

我有一个像这样的文件夹结构:

artist1 - year - album - [flac] artist1 - year - album - [mp3] artist1 - year - album - [AAC] artist2 - year - album - [flac] etc

我喜欢循环播放具有相同艺术家和专辑信息的一组文件夹并查找folder.jpg文件。 当我find那个文件,我喜欢把它复制到同一个集合中的所有其他文件夹。

例如,如果我在artist1 - year - album - [flac]find一个folder.jpg artist1 - year - album - [flac]文件夹,我是否希望将folder.jpg复制到artist1 - year - album - [mp3] & artist1 - year - album - [AAC]而不是artist2 – year – album – [flac]。

继续循环,直到所有的集合都被处理完毕。 我真的希望,这使得它更容易理解我试图做的:)

脚本search匹配模式的表格,然后截断它们

bash脚本读取目录中的所有文件

询问MongoDB,如果它是主从一个bashscript

从$ PATH中排除特定的目录

计算bash中有多less行继续到下一行?

IFS=' ' FLDRS=`find . -name folder.jpg | grep -v ./folder.jpg | sed -e 's@/folder.jpg$@@` for F in $FLDRS; do NOENC=`echo "$F" | sed -e 's/[.*$//'` for DST in "$NOENC*"; do if [ -d "$DST" -a ! -f "$DST/folder.jpg" ]; then cp "$F/folder.jpg" "$DST" fi done done

对于所有包含文件夹中包含folder.jpg的文件,效率不高,但除非出现错误,否则应该完成这项工作。

我知道它不是最有效或最正确的代码,但是这样做对我来说是正确的,而且我在正确的文件夹中找到了正确的folder.jpg。

IFS=' ' source=( `find . -name folder.jpg | sed 's/^..//' | sort -u` ) for s in ${source[@]} do fullname=(`echo $s | cut -d'/' -f1 | sort -u`) checkname=`echo $fullname | cut -d'[' -f1 | sort -u` match=( `find . -name "$checkname*" | sed 's/^..//' | sort -u` ) for a in ${match[@]} do if [[ "$a" == "$fullname" ]]; then echo $a 'not copied' else echo $a #echo $match '*M*' cp $s "$a/folder.jpg" fi done done

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐