【发布时间】:2018-03-02 10:03:55
【问题描述】:
我正在尝试归档位于 /var/log 目录中的所有 .log 文件,并在创建时删除文件上的所有前导路径。
我发现我可以通过以下方式轻松归档所有 .log 文件:
tar -cvf ~/backup.tar /var/log/*.log
不幸的是,在线搜索后删除前导路径的方法是使用-C 更改命令的目录,现在它无法识别*.log,并认为* 是文字。
使用:
tar -cvf ~/backup.tar -C /var/log *.log
我收到一条错误消息,提示找不到文件 *.log。
我想我的语法一定是关闭的,我已经尝试对语法进行一些更改但无济于事。
【问题讨论】:
-
*(和类似的通配符)在调用命令之前由 shell 扩展。 Tar 总是认为*是字面意思。 -
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地点。
-
好的,这完全有道理,但必须有一种方法来做我想要实现的目标?就我目前的知识而言,我可以做一个或另一个,但不能同时做。
-
为什么不在运行 tar 之前更改目录?
( cd /var/log && tar -cfv ~/backup.tar *.log ) -
我猜这是我唯一的解决方案,我只是希望我可以从主目录实现所有命令。感谢您的帮助!