还是工作中的一堆烂事.有时候你在Linux下要导出一批文件,但是用大包命令发现Linux提示你没有权限,或者说解压的时候软件提示你权限不够.
这时候方法不外乎:
方法一:一个一个文件的打开,然后手动复制出来,天哪!!!
方法二:使用脚本批量复制到给定目录
我们讨论方法二.
首先,我们按照Linux的提示,或者解压软件的提示,吧那些权限不够的文件和路径给复制出来到一个文件中,比如tmpfile.txt.我的文件如下
\http\tcp\map\baidu-UD-MIB.txt \http\tcp\tools\dbd\fkcp_fkc.c \http\tcp\map\baidu-UD-MIB.txt \http\tcp\tools\dbd\fkcp_fkc.c \http\tcp\map\baidu-UD-MIB.txt \http\tcp\tools\dbd\fkcp_fkc.c \http\tcp\map\baidu-UD-MIB.txt \http\tcp\tools\dbd\fkcp_fkc.c \http\tcp\map\baidu-UD-MIB.txt \http\tcp\tools\dbd\fkcp_fkc.c \http\tcp\map\baidu-UD-MIB.txt \http\tcp\tools\dbd\fkcp_fkc.c \http\tcp\map\baidu-UD-MIB.txt \http\tcp\tools\dbd\fkcp_fkc.c
注意:上面是windows的格式,需要把斜线换成反斜线.
把该文件放到\http路径下面.在该路径下创建脚本,比如file2copy.sh
#!/bin/bash cat tmpfile.txt | while read line do filename=`basename $line`; echo $filename # touch /home/xj/temp/$filename cp $line /home/xj/temp/$filename done
do循环处理每一行line内容.首先使用basename提取没有前缀的文件名(关于basename请百度一下);
然后echo语句打印当前正在操作的文件;
cp命令将单签文件复制到给定的目录下.
完毕!
//我知道实践这个方法的人会看到输出错误,脚本是没有问题的,但是我确实有一点没说到.而且看起来一点都不难发现问题所在.请在看到输出的问题的时候想一想原因.