9 bash
我有一个名为的目录myname
,该目录存档在myname.tar
. 现在我想把myname.tar
它解压,然后删除目录中的所有文件myname
(解压后)。
以下是我执行上述任务的命令:
find -name deleteme.tar
tar -xvf deleteme.tar
rm -r delete/*
Run Code Online (Sandbox Code Playgroud)
这些单独的命令工作正常,但我需要一个单行命令,所以我尝试了这个:
find -name deleteme.tar | tar -xvf deleteme.at | rm -r delete/*
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
"rm -r deleteme/*
rm: cannot remove `deleteme/*': No such file or directory "
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
如果您使用 bash,我建议您阅读 bash ( man bash
)的手册页,并搜索“控制运算符” ( /control operator+ [Enter])。
在那里,解释了诸如|
和之类的不同功能;
。
不过,您可能想考虑使用&&
而不是;
。如果这样做,则只有在前一个功能成功时才能按该顺序执行以下功能。意思是,如果find
找不到您的文件,它不会尝试压缩任何内容:
find -name deleteme.tar && tar xvf deleteme.tar && rm -r delete/* || echo "something went wrong" 1>&2
Run Code Online (Sandbox Code Playgroud)
只是一个小建议,虽然...
归档时间: |
|
查看次数: |
67293 次 |
最近记录: |