如何在 rm 要求确认时自动取消删除?
How to auto cancel deleting while rm asking for confirm?
是否有类似 rm -f
但自动 n
而不是自动 y
的东西?
删除可以删除的 rm not asked 并防止其他人被删除。与带有只读标志的文件一样,由其他程序打开的文件。
我试过 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
适用于上述平台上的只读文件。
您可以使用 --interactive
或 -i
作为 rm
命令中的选项,如手册页所述:
-i prompt before every removal
--interactive[=WHEN] prompt according to WHEN: never, once (-I), or always (-i); without WHEN, prompt always
这对我 Linux 的两种口味来说效果很好。
echo n| rm -i *.csv
但是,-i 总是交互式的,所以它基本上否定了命令。如果您想使用 readonly 命令跳过任何内容,我建议您创建一个函数。
del() {
for file in $@; do
[ -w $file ] && rm $file
done
}
请注意,这仅在您无法写入文件时有效。
您可以使用:
rm --interactive=never somefile
是否有类似 rm -f
但自动 n
而不是自动 y
的东西?
删除可以删除的 rm not asked 并防止其他人被删除。与带有只读标志的文件一样,由其他程序打开的文件。
我试过 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
适用于上述平台上的只读文件。
您可以使用 --interactive
或 -i
作为 rm
命令中的选项,如手册页所述:
-i prompt before every removal
--interactive[=WHEN] prompt according to WHEN: never, once (-I), or always (-i); without WHEN, prompt always
这对我 Linux 的两种口味来说效果很好。
echo n| rm -i *.csv
但是,-i 总是交互式的,所以它基本上否定了命令。如果您想使用 readonly 命令跳过任何内容,我建议您创建一个函数。
del() {
for file in $@; do
[ -w $file ] && rm $file
done
}
请注意,这仅在您无法写入文件时有效。
您可以使用:
rm --interactive=never somefile