我正在使用由 4 个子目录组成的目录
ls -t
pnmrnp40_to_69 pnmrnp9028_to_9100 pnmrnp00_to_39 pnmrnp70_to_9028
在每个 prmnp* 子目录中,有许多填充属于 *.tar.gz 存档或 *.md5sub (我不知道它是什么,所以应该删除它)。
charlie@Precision-7920-Tower:~/Documents/script/mega_data/pnmrnp/pnmrnp40_to_69$ ls -t
ligands57_dir_results.tar.gz.md5sum ligands40_dir_results.tar.gz.md5sum
ligands57_dir_results.tar.gz ligands69_dir_results.tar.gz
ligands69_dir_results.tar.gz.md5sum ligands68_dir_results.tar.gz
ligands68_dir_results.tar.gz.md5sum ligands67_dir_results.tar.gz
ligands67_dir_results.tar.gz.md5sum ligands66_dir_results.tar.gz
ligands66_dir_results.tar.gz.md5sum ligands65_dir_results.tar.gz
我需要一个简单的 bash 工作流程,它将移动到每个子目录
- 删除所有 *.md5sub
- 将所有 *.tar.gz 解压到同一个子文件夹(保留原始存档的名称)。
这是我在 bash 中的工作流程:
#!/bin/bash
# assuming that the script is in the folder contained all subdirectories
dir="$PWD"
# loop each subdirectory
for subdir in ${dir}
cd ${subdir}
# unzip each archive to the same place
for tar in *.tar.gz; do
tar xzvf $tar
done
# return to initial dir
cd ..
done
有没有可能使这个脚本更有效,以便它可以适应大量的档案?
find(1)
: