我使用以下方法删除一些文件trash-cli
:
$ pwd
/tmp/test
$ sudo trash mfile
$
然后我查找删除的文件的存储位置:
$ sudo ls /.Trash/0/ -la
total 16
drwx------ 4 root root 4096 May 19 16:52 .
drwx------ 3 root root 4096 May 19 16:52 ..
drwx------ 2 root root 4096 May 19 16:52 files
drwx------ 2 root root 4096 May 19 16:52 info
$ sudo ls /.Trash/0/* -la
ls: cannot access '/.Trash/0/*': No such file or directory
$ sudo ls /.Trash/0/files/ -la
total 12
drwx------ 2 root root 4096 May 19 16:52 .
drwx------ 4 root root 4096 May 19 16:52 ..
-rw-rw-r-- 1 t t 6 May 19 16:48 mfile
为什么文件名扩展在第二个命令中不起作用?
谢谢。
答案1
第一个ls
显示/.Trash/0/
只能由 root 读取(第一行,用于 的行.
)。由于您使用的是sudo
,您可能不是 root,因此您的 shell 无法列出目录的内容,也无法扩展*
.ls /.Trash/0/
没有sudo
可能会给Permission denied
。
这类似于sudo echo foo > /some/path/filename
如果只能由 root 写入则不起作用/some/path
:shell 在运行之前处理扩展和重定向sudo
。您需要sudo bash -c 'ls /.Trash/0/*'
这样才能在 下处理命令行sudo
。