我希望创建一个脚本 - linux 或 python 脚本,以便它可以为我创建以下内容以及验证从文件夹复制的文件。
我有两个文件夹:
文件夹 A 有 300 个 .xls 文件 - 此文件夹缺少当前位于文件夹 B 中的一些文件。
FolderB 有 500 个 .xls 文件
我想将选定的 100 个文件从文件夹 B 复制到文件夹 A。然后希望脚本验证当前位于文件夹 A 中的所有文件(从 B 复制 100 个文件后现在应该是 400 个)也存在于文件夹 B 中。
然后我希望脚本将所有这些文件单独压缩为自己的 bzip2 文件。基本上,当该过程完成时,最终将有 400 个 bzip2 文件(每个 excel 一个)。
答案1
脚本如何知道自动区分该文件夹中要压缩的文件?有特定的命名约定吗?如果没有,您可能需要将要压缩的文件从文件夹 A 和文件夹 B 合并到文件夹 C。以下脚本将压缩每个文件。如果您不想保留原始 .xls 文件,请删除-k
#/bin/bash
files="/path/to/files"
for f in $files; do
bzip2 -k $f
done
答案2
我不清楚您希望如何选择这 100 个丢失的文件。这会随机选择 100 个(如果您只想选择前 100 个丢失的文件,请删除--shuf
):
a=folderA
b=folderB
# copy 100 files from folderB
parallel --shuf -j1 --halt now,success=100 [ ! -f $a/{/} ] '&&' cp {} $a/{/} ::: $b/*
# Verify all files in folderA is in folderB
parallel [ ! -f $b/{/} ] '&&' echo {} is in $a but not in $b ::: $a/*
# bzip2 them all
parallel bzip2 ::: $a/*
GNU Parallel 主要用于让您可以运行bzip2
每个 CPU 线程。