我有一组文件和文件夹,如下所示:
├── controller
│ └── controller.txt
├── hello.txt
├── hi.txt
├── me.txt
└── model
└── user.txt
这里的内容会经常更改,新文件,文件删除,文件夹添加,文件夹删除等。我需要一种方法将这些文件均匀地分成3rds(虽然这可能会改变)。
分手我的意思是,我只需要保留第一个文件。我还需要另一个脚本来保存第二个文件等等。
这是我最初的想法虽然它不起作用:
ls -1 | wc -l | head -n / 3 | xargs rm
上下文更新:
我正在使用并行ci工具,我只希望一次在一台服务器上运行1/3的测试文件。所以我需要一台服务器上的脚本才能:
服务器1:
├── controller
│ └── controller.txt
├── hello.txt
服务器2:
├── hi.txt
├── me.txt
服务器3:
└── model
└── user.txt
答案 0 :(得分:1)
这是一个示例脚本。您可以将echo $ file_name替换为mv,cp,rm等任何其他命令。
#!/bin/sh
# the helper file needs to be outside of the stucture, when the script is ran
find -type f > ../helper_file
NUM_FILES=`cat ../helper_file | wc -l`
PORTION=$(($NUM_FILES/3))
i=0
cat ../helper_file | \
while read file_name; do
i=$(($i+1 ))
if [ $i -ge $PORTION ] ; then break; fi
echo $file_name
done