我遇到了命令失败的问题,因为我希望它们在某个目录中执行,而事实并非如此。
例如,我想这样做:
<version>1.11.192</version>
创建一个新的pdf文档,然后
pdfcrop --margins '0 0 -390 0' $pag "$pag"_1stCol.pdf
问题是mv `\ls /home/dir | grep '_1stCol'` /home/gmanglano/dir/columns
命令失败,因为它找到了文档,它试图移动找到我执行脚本的目录的文件,而不是找到它的位置。
这种情况经常发生在我身上,我觉得我缺少一个概念,或者我认为这是错误的方式。
我得到的错误是:
mv
实际上,如果说失败了,它就不在我启动脚本的目录中。
答案 0 :(得分:4)
只需使用ls
命令,而不是使用find
和反引号进行修改。它是为查找文件而构建的,然后根据查找结果执行命令:
find /home/dir -name "*_1stCol.pdf" -exec mv {} /home/gmanglano/dir/columns \;
这是在/home/dir
中找到与名称*_1stCol.pdf
匹配的文件,然后移动它们。 {}
是找到的文件的标记。
答案 1 :(得分:3)
Don't parse the output of ls:如果您将mv
命令简化为
mv /home/dir/*_1stCol.pdf /home/gmanglano/dir/columns
那么你在错误的目录中就不会有问题。