我打算通过创建一个临时文件来工作,将名称打印到屏幕上,使用大括号扩展通过在同一目录中创建带有.BAK后缀的备份文件来快速创建它,使用ls对于这两个文件,并删除这两个文件:
#!/bin/bash
fileone=$(mktemp)
echo cp "$fileone"{,.bak}
ls "$fileone"*
rm -rf "$fileone"*
我收到一条错误,告诉我它在我的输出中找不到“/tmp/tmp.UQxlOPQXri.BAK”。
这是我运行时的结果
++ mktemp
+ fileone=/tmp/tmp.CYQY3BP693
+ echo cp /tmp/tmp.CYQY3BP693 /tmp/tmp.CYQY3BP693.bak
cp /tmp/tmp.CYQY3BP693 /tmp/tmp.CYQY3BP693.bak
+ ls /tmp/tmp.CYQY3BP693
/tmp/tmp.CYQY3BP693
+ rm -rf /tmp/tmp.CYQY3BP693
答案 0 :(得分:0)
#!/bin/bash
fileone=$(mktemp)
echo cp "$fileone"{,.bak}
ls "$fileone"*
rm -rf "$fileone"*
你生成一个临时文件,回显一下cp会做什么,但你永远不会这样做。 就是这样。