所以我想创建一个组织我的Drum Library的Bash脚本。我想输入字符串'kick'并让它以递归方式搜索指定的目录。它应该在目录中找到字符串'kick'的所有目录,并将其内容复制到一个单独的目录中。 (最好清空目录而不只是复制文件夹)。我在Mac终端上运行,我已经包含了我到目前为止提出的代码,但它并没有完全按照我的意愿行事。我认为问题在于使用'find'
的代码行同样在新目录中,我将新目录中的最终文件分组为128。
#!/bin/bash
declare -i numFiles
declare -i numDirs
mkdir ./temp
ceildivide(){
local num
num=$1
echo $(( (num + 127) / 128 ))
}
find -E /Users/dot/Documents/_Sound\ Library/Drums\ \&\ Samples -regex ".*$1.*" -exec cp {} ./temp/ \;
numFiles=`ls ./temp | wc -l`
numDirs=$(ceildivide $numFiles)
for i in $(seq 1 $numDirs); do
mkdir $1_$i;
ls ./temp/ |head -n 128 > $1_$i/$1_$i.index
for x in `cat $1_$i/$1_$i.index`; do mv ./temp/$x $1_$i; done
done
rm -rf ./temp