我试图向Nautilus添加一个上下文菜单选项,以便当我右键单击一个文件时,我可以选择运行srm来安全地用零覆盖它,而不是将它移动到/Trash或rm‘’ing它。我在~/..local/share/nautilus/脚本中有以下可执行文件
#!/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,但没有结果。
发布于 2020-07-04 03:32:00
弄明白了。下面是工作的新代码:
#!/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‘,或将其移动到垃圾。
https://stackoverflow.com/questions/62688836
复制相似问题