Bash 为什么同一文件的就地排序会失败?

Bash 为什么同一文件的就地排序会失败?,bash,sorting,Bash,Sorting,使用stdout重定向时,sort命令的行为不符合预期,如下所述:[sort命令问题]() 我的问题是,为什么下面的方法失败了 sort file > file # Surprise! Generates empty file. Data is lost :( 它是否与特定发行版中shell的写入权限有关,还是与其他内容有关?如果这只是一个写权限问题,那么如何使其工作(而不是使其工作)?不应该先覆盖文件吗?shell在命令运行之前设置重定向,当shell打开文件进行写入时,它

使用stdout重定向时,sort命令的行为不符合预期,如下所述:[sort命令问题]()

我的问题是,为什么下面的方法失败了

sort file > file       # Surprise! Generates empty file. Data is lost :(

它是否与特定发行版中shell的写入权限有关,还是与其他内容有关?如果这只是一个写权限问题,那么如何使其工作(而不是使其工作)?不应该先覆盖文件吗?

shell在命令运行之前设置重定向,当shell打开文件进行写入时,它会立即截断文件的内容<代码>排序从未有机会看到它们

从bash中:

重定向

在执行命令之前,可以重定向其输入和输出 使用shell解释的特殊符号。重定向可能 也可用于打开和关闭当前shell执行的文件 环境以下重定向运算符可能位于前面或出现 在一个简单命令中的任何位置,或者可以跟随一个命令。重定向 按从左到右的顺序处理


shell在命令运行之前设置重定向,在shell打开文件进行写入时,会立即截断文件的内容<代码>排序从未有机会看到它们

从bash中:

重定向

在执行命令之前,可以重定向其输入和输出 使用shell解释的特殊符号。重定向可能 也可用于打开和关闭当前shell执行的文件 环境以下重定向运算符可能位于前面或出现 在一个简单命令中的任何位置,或者可以跟随一个命令。重定向 按从左到右的顺序处理


shell在命令运行之前设置重定向,在shell打开文件进行写入时,会立即截断文件的内容<代码>排序从未有机会看到它们

从bash中:

重定向

在执行命令之前,可以重定向其输入和输出 使用shell解释的特殊符号。重定向可能 也可用于打开和关闭当前shell执行的文件 环境以下重定向运算符可能位于前面或出现 在一个简单命令中的任何位置,或者可以跟随一个命令。重定向 按从左到右的顺序处理


shell在命令运行之前设置重定向,在shell打开文件进行写入时,会立即截断文件的内容<代码>排序从未有机会看到它们

从bash中:

重定向

在执行命令之前,可以重定向其输入和输出 使用shell解释的特殊符号。重定向可能 也可用于打开和关闭当前shell执行的文件 环境以下重定向运算符可能位于前面或出现 在一个简单命令中的任何位置,或者可以跟随一个命令。重定向 按从左到右的顺序处理



可能的重复是指从文件中读取并同时写入。可能的重复是指从文件中读取并同时写入。可能的重复是指从文件中读取并同时写入。可能的重复是指从文件中读取并同时写入。可能的重复是指从文件中读取并同时写入同时写入。可能与“排序文件<文件”重复,是否不保存已完成的操作?同样对于stdout(>),您的答案是否是针对同一文件的命令的所有重定向操作的一般情况?我本以为我给我的那本书的粗略描述会改写内容。对于多个stdout或stdin操作,如“sort file>file>sort file”,shell在运行命令之前的顺序是什么?是从左向右还是从左向右?谢谢。
sort>file>sort file
将创建(并删除)文件
file
,然后创建(并删除)文件
排序
,然后尝试排序
文件
,并将输出写入
排序
。您可以使用
echo>file1>file2“some message”(一些消息)
轻松测试这一点,然后查看哪些文件存在,哪些文件包含内容。确实如此。但是,与给出的回答相比,我一直在寻找清晰的语言和术语。
sort file
将忽略参数中的
stdin
和sort
file
。使用“sort file),您的答案是否是针对同一文件的命令的所有重定向操作的一般情况?我本以为我给我的那本书的粗略描述会改写内容。对于多个stdout或stdin操作,如“sort file>file>sort file”,shell在运行命令之前的顺序是什么?是从左向右还是从左向右?谢谢。
sort>file>sort file
将创建(并删除)文件
file
,然后创建(并删除)文件
排序
,然后尝试排序
文件
,并将输出写入
排序
。您可以使用
echo>file1>file2“some message”(一些消息)
轻松测试这一点,然后查看哪些文件存在,哪些文件包含内容。确实如此。但是,与给出的回答相比,我一直在寻找清晰的语言和术语。
sort file
将忽略参数中的
stdin
和sort
file
。使用“sort file),您的答案是否是针对同一文件的命令的所有重定向操作的一般情况?