一个意外错误命令
tar cfz --exclude=data --exclude=backup PerfKitBenchmarker.tar.gz PerfKitBenchmarker
导致当前目录下生成了一个名为--exclude=data
的文件
本意是参考6.4 Excluding Some Files创建一个不包含data
和backup
目录的打包文件。
上述命令错误在于,tar只认命令参数cfz
之后必须是目标文件名,之后才可以是可选参数,以及源文件目录,正确写法应该是:
tar cfz PerfKitBenchmarker.tar.gz --exclude=data --exclude=backup PerfKitBenchmarker
但是,这个奇怪的--exclude=data
文件如何清理?shell会始终把这个文件名立即成参数:
# rm --exclude\=data
rm: unrecognized option '--exclude=data'
Try 'rm ./'--exclude=data'' to remove the file ‘--exclude=data’.
Try 'rm --help' for more information.
StackExchange上有人提供了简单的解决方法,原来--
空白的时候表示关闭处理命令行参数,即可以通过如下命令删除:
rm -- --exclude=data
在shell中使用空白的--
居然能够停止参数解析,实在是神奇...