我想创建一个名为package.sh
的脚本,该脚本应该:
/home/eddy
,将创建目录/tmp/eddy
。/tmp
我是bash脚本的新手,所以我想得到一些帮助。 非常感谢
答案 0 :(得分:1)
为什么不将该目录/home/eddy
复制到/tmp
?如果您使用--exclude
进行复制以便过滤所需的文件,则可以使用一些rsync
标记。
答案 1 :(得分:1)
那样的话:
#!/bin/bash
cp -r `realpath $1` /tmp
将第一个参数给出的目录复制到/ tmp。
但正如你所说,你只需要复制* .txt和* .sh文件,这样就可以了。
#!/bin/bash
cp `find $1 -name "*.txt" | xargs realpath` /tmp
cp `find $1 -name "*.sh" | xargs realpath` /tmp
但是这并没有像你想要的那样重新创建目录结构,因此你需要cpio
#!/bin/bash
find $1 -regextype posix-awk -regex "(.*\.txt|.*\.sh)" | cpio -pdv /tmp
要包含.sh文件必须设置可执行标志的条件(如果未设置则跳过副本),那么我们必须使用两行:
#!/bin/bash
find $1 -name "*.txt" | cpio -pdv /tmp
find $1 -perm /u=x,g=x,o=x -name "*.sh" | cpio -pdv /tmp