首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu -- Nautilus脚本不会运行"srm“来安全删除文件

Ubuntu -- Nautilus脚本不会运行"srm“来安全删除文件
EN

Stack Overflow用户
提问于 2020-07-02 04:05:37
回答 1查看 153关注 0票数 1

我试图向Nautilus添加一个上下文菜单选项,以便当我右键单击一个文件时,我可以选择运行srm来安全地用零覆盖它,而不是将它移动到/Trash或rm‘’ing它。我在~/..local/share/nautilus/脚本中有以下可执行文件

代码语言:javascript
复制
#!/bin/bash

#Make local Nautilus filepath variable global
export srmthis=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS

#Copy the above variable to a log
echo "$srmthis" >> logfile.txt

#Now, please srm secure-delete the file indicated in the filepath
sudo -E /usr/bin/srm -flz "$srmthis"

$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS是Nautilus在其中选择文件时设置的变量。我的想法是,我会把它放到我自己的变量$srmthis中,然后将它作为它的目标文件传递给srm,并使用选项"-flz“来进行更快、更不安全的擦除。

但不起作用。没有输出,没有弹出警告。

当我echo "$filetosrm" >> somefile.txt时,我确实得到了一个输出,所以我知道变量是设置的。我也可以使用srm本身在终端没有问题。

我做错了什么?

非常感谢!

试着用gksu、pkexec、\ xargs等运行srm,但没有结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-04 03:32:00

弄明白了。下面是工作的新代码:

代码语言:javascript
复制
#!/bin/bash

#Make local Nautilus filepath variable global
srmthis=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS

#Copy the above variable to a log
echo "$srmthis" >> srmtemp.txt

#Get the first line from temp file to get rid of annoying newline
line=$(head -n1 srmtemp.txt)

#Wipe the file with srm: -fllz fast mode, -r recursively for any subdirectories
/usr/bin/srm -fllzr "$line"

#Clean up
/usr/bin/srm -l srmtemp.txt

另外,我没有使用sudo /usr/bin/srm,而是将srm添加到我的/etc/sudoers中,使用whiterabbit ALL = (root) NOPASSWD: /usr/bin/srm作为用户名,这使得它能够运行,而不必在脚本中使用sudo命令。

这将srm添加为Nautilus脚本。现在,我可以右键单击一个文件,然后转到脚本-> SRM,并擦除-删除该文件在图形用户界面中的零,而不是rm‘,或将其移动到垃圾。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62688836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档