我正在努力完成这项任务:
编写一个脚本,将目录(路径)名称和a作为输入 文件名基础(例如“。”,“* .txt”等)。脚本应搜索 给定目录树,找到与给定文件名匹配的所有文件,和 将它们捆绑到一个文件中。将给定文件作为脚本执行 应该返回原始文件。
任何人都可以帮助我吗?
首先,我试图像这样做找到这个部分:
#!/bin/bash
filebase=$2
path=$1
find $path \( -name $base \)
然后我发现这个代码用于bundle,但我不知道如何组合它们。
for i in $@; do
echo "echo unpacking file $i"
echo "cat > $i <<EOF"
cat $i
echo "EOF"
done
答案 0 :(得分:1)
继续使用tripleee的评论,您可以使用shar
生成自解压存档。
您可以获取find
的输出并将其传递给shar
以生成存档。
#!/bin/bash
path="$1"
filebase="$2"
archive="$3"
find "$path" -type f -name "$filebase" | xargs shar > "$archive"
传递给-type f
的{{1}}选项会将搜索限制为文件(即排除目录),这似乎是一个必要的限制。
如果上面的脚本被称为find
,并且是可执行的,那么您可以按如下方式调用它,例如:
archive_script.sh
这将在/ etc。
中创建所有.txt文件的./archive_script.sh /etc '*.txt' etc-text.shar
存档