我使用了这个命令:
sort .file1 >.file2 | mv .file2 .file1
但接下来.file1
就是空了。
为什么?如果我的命令错误我该如何恢复?
答案1
在这种情况下,拥有管道实际上没有意义,因为管道的第一部分不会为第二部分生成输入,并且第二部分不会从标准输入读取任何内容。
相反,只需使用
$ sort -o .file1 .file1
.file1
这将“就地”对文件进行排序。
当您运行管道时发生的情况是 shell 创建.file2
为空文件,并且mv
有时间替换.file1
sort
设法对.file1
.管道的所有部分同时启动。
要恢复,请从备份恢复。
答案2
你应该做sort .file1 > .file2 && mv .file2 .file1
。使用|
管道,您只需传递已.file2
重命名为的stdout.file1
What kind of file-system do you have on this /dev/sda1
,但请注意,恢复可能是不可能的