有些程序会使我的根目录虚拟文件如
-1
-2
-3
...
-n
Run Code Online (Sandbox Code Playgroud)
我跑得不成功
rm -1
Run Code Online (Sandbox Code Playgroud)
也是
rm "-1"
Run Code Online (Sandbox Code Playgroud)
终端认为-1是选项.
如何删除终端中的文件?
据我记得添加 - 作为命令行上的一个选项将导致rm命令从字面上考虑所有剩余的参数,所以命令
rm -- -1
Run Code Online (Sandbox Code Playgroud)
将删除有趣的命名文件.请注意,您仍然可以使用shellextensions(例如'*'或'?'),因为shell会在命令运行之前展开它们(与DOS不同).
编辑:当我第一次遇到这个问题时,我不知道 - 开关所以我写了一个小的c程序,它将删除与第一个参数相同的文件名.这很容易做到,因为所有 posix操作系统都包含unlink系统调用,该调用使用作为参数给出的名称删除文件(将以下内容转储到终端中):
remove_arg.c << EOF
#include<unistd.h>
int main(int argc, char **argv){
unlink(argv[1]);
}
EOF
gcc -o remove_arg remove_arg.c
./remove_arg -1
Run Code Online (Sandbox Code Playgroud)
这应该在任何UNIX系统上工作,虽然你可能不得不改变gcc成cc或者你本地的C编译器的名字命名.
| 归档时间: |
|
| 查看次数: |
328 次 |
| 最近记录: |