有rm -f
但是自动n
不是自动y
吗?
删除可以删除的内容rm未被询问并阻止其他人被删除。与具有只读标志的文件一样,由其他程序打开的文件。
我试过yes n | rm somefile
无效。
这是OS X 10.11。 rm推广只读文件。
似乎rm在不同的平台上有不同的默认行为。
我已经尝试过OS X 10.11和Ubuntu 14.04(不能正常工作):
rm somefile
rm --interactive=never somefile
echo n| rm -i somefile
Ubuntu日志:
$ touch somefile
$ chmod 444 somefile
$ ls -l somefile
-r--r--r-- 1 ubuntu ubuntu 0 Apr 12 06:04 somefile
$
$ rm somefile
rm: remove write-protected regular empty file ‘somefile’? n
$ rm somefile
rm: remove write-protected regular empty file ‘somefile’? n
$
$ rm --interactive=never somefile
$ rm --interactive=never somefile
rm: cannot remove ‘somefile’: No such file or directory
$
$ touch somefile
$ chmod 444 somefile
$ ls -l somefile
-r--r--r-- 1 ubuntu ubuntu 0 Apr 12 06:06 somefile
$ echo n| rm -i somefile
rm: remove write-protected regular empty file ‘somefile’? $ ls -l somefile
-r--r--r-- 1 ubuntu ubuntu 0 Apr 12 06:06 somefile
@SaintHax的解决方案
for file in $@; do
[ -w $file ] && rm $file
done
适用于上述平台上的只读文件。
答案 0 :(得分:1)
您可以在--interactive
命令中使用-i
或rm
作为选项,如手册页中所述:
每次删除前都会出现-i提示
- 交互式[= WHEN]提示符根据WHEN:never,once(-I)或always(-i);没有WHEN,提示始终
答案 1 :(得分:1)
在我的两种Linux上,这对我来说很好。
echo n| rm -i *.csv
但是,-i总是交互式的,所以它基本上否定了命令。如果你想用readonly命令跳过任何东西,我建议你创建一个函数。
del() {
for file in $@; do
[ -w $file ] && rm $file
done
}
请注意,这仅适用于您无法写入文件的情况。
答案 2 :(得分:0)
您可以使用:
rm --interactive=never somefile