Command line 删除.git时的奇怪行为

Command line 删除.git时的奇怪行为,command-line,command-line-interface,Command Line,Command Line Interface,我试图删除我的Git文件: rm -R .git | yes 我的CPU变得响亮,没有文件被删除。我不明白发生了什么事。如何删除.git文件?试试看 yes | rm -r .git 您将rm的输出传递给yes(flow是left->right),但是由于yes不读取stdin,所以rm只是挂在那里 此外,您实际上并不需要“是”。由于您真正想以自动方式回答“是”的唯一问题是是否删除只读文件,因此可以使用-f参数('force'): 试一试 您将rm的输出传递给yes(flow是left->r

我试图删除我的Git文件:

rm -R .git | yes
我的CPU变得响亮,没有文件被删除。我不明白发生了什么事。如何删除.git文件?

试试看

yes | rm -r .git
您将rm的输出传递给yes(flow是left->right),但是由于yes不读取stdin,所以rm只是挂在那里

此外,您实际上并不需要“是”。由于您真正想以自动方式回答“是”的唯一问题是是否删除只读文件,因此可以使用-f参数('force'):

试一试

您将rm的输出传递给yes(flow是left->right),但是由于yes不读取stdin,所以rm只是挂在那里

此外,您实际上并不需要“是”。由于您真正想以自动方式回答“是”的唯一问题是是否删除只读文件,因此可以使用-f参数('force'):


.git下面可能有很多文件。试用

$ rm -Rvf .git

这样,它将显示正在删除的文件。

.git下面可能有很多文件。试用

$ rm -Rvf .git

这样,它将向您显示要删除的文件。

看起来您正试图处理
rm
在每次删除前通过管道输出
yes
来请求确认的问题,这会在rm中产生无限多的“y”字符,但您做得不对

rm -Rf .git      # the -f option is "force", i.e. don't ask for confirmation.
如果要将一个命令的输出通过管道传输到另一个命令,则源必须位于管道之前:

yes | head

看起来您正试图处理
rm
在每次删除前通过管道输出
yes
请求确认的问题,这会在rm中产生无限多的“y”字符,但您做得不对

rm -Rf .git      # the -f option is "force", i.e. don't ask for confirmation.
如果要将一个命令的输出通过管道传输到另一个命令,则源必须位于管道之前:

yes | head

重新标记:它不是关于git,而是关于命令行(bug)重新标记:它不是关于git,而是关于命令行(bug)