最近有个需求,需要在几千个3到4级目录中找到所有的sh脚本文件,进行备份,要求备份时
保持sh脚本文件所在的
目录结构。
难道要专门写个shell吗?太麻烦了,之前从网上发现了一个好玩的命令:
tar -cpf - kehu/szyx50/backup.sh | tar -xpf - -C shell_backup /
这条命令的作用是:先把 kehu/szyx50/backup.sh打包,再在shell_backup/下解包,这样,sh脚本文件和它相应的目录结构就都保存下来了。
我对这条命令中的 “ - ” 和 " | " 的使用不太明白,也找不到相关的资料,汗一个先,请知道的大牛们不吝赐教。
大概猜测一下,“ - ” 可能对应的是 bash中的 standard output, standard input ;通过管道符进行传输,不知道对不对。
剩下的就简单了,通过find找到脚本文件和路径,执行上面的命令,搞定。
忘记说了,要用 xargs哦,或者先将find结果写入文件,在用tar -l读取文件列表。
来个例子吧:find ./kehu/ -name "*.sh" |xargs tar -cpf - |tar -xpf - -C ./test/
难道要专门写个shell吗?太麻烦了,之前从网上发现了一个好玩的命令:
tar -cpf - kehu/szyx50/backup.sh | tar -xpf - -C shell_backup /
这条命令的作用是:先把 kehu/szyx50/backup.sh打包,再在shell_backup/下解包,这样,sh脚本文件和它相应的目录结构就都保存下来了。
我对这条命令中的 “ - ” 和 " | " 的使用不太明白,也找不到相关的资料,汗一个先,请知道的大牛们不吝赐教。
大概猜测一下,“ - ” 可能对应的是 bash中的 standard output, standard input ;通过管道符进行传输,不知道对不对。
剩下的就简单了,通过find找到脚本文件和路径,执行上面的命令,搞定。
忘记说了,要用 xargs哦,或者先将find结果写入文件,在用tar -l读取文件列表。
来个例子吧:find ./kehu/ -name "*.sh" |xargs tar -cpf - |tar -xpf - -C ./test/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14184018/viewspace-1783101/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14184018/viewspace-1783101/