我正在尝试从有硬件错误的磁盘中恢复文件。
磁盘已由磁盘实用程序修复,但它告诉我磁盘已损坏,因此我需要在发生故障之前备份所有内容。
所以我试图通过finder复制文件,但它卡住了。尝试了其他实用程序,当磁头碰到损坏的块时,他们在尝试复制文件时卡住了。
所以我尝试了 rsync,它似乎有效;但是当我遇到坏块时需要很长时间。
所以我想知道,是否有办法告诉 Rsync 甚至不打扰文件,如果它花费的时间太长?我可以指定每个文件的尝试次数,或者每个文件需要尝试多长时间?
我不确定这个驱动器能用多久,所以我想尽快把所有数据从里面取出,同时我仍然可以挂载它并在 finder 中看到它上面的数据。
这是我使用的命令;如果有任何方法可以减少对文件的尝试,请提出建议,这样我就可以让 rsync 尝试读取损坏的块,但要避免在特定扇区上停留太久。
rsync -arv -e--ignore-errors --partial-dir=/Volumes/backup/partial /Volumes/work /Volumes/backup
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我打算替换文件中的某些字符串;所以我正在使用 sed。
我想替换字符串,而 sed 读取字符串并将文本附加到字符串的中间。
例子:
string in myfile : user=blabla
string that I want to obtain: user=bob
Run Code Online (Sandbox Code Playgroud)
所以我以这种方式运行 sed,让它搜索“user=”字符串,并将其替换为“user=bob”
sed -i 's/user=*/user=bob/' myfile
Run Code Online (Sandbox Code Playgroud)
我得到的是
user=bobblabla
Run Code Online (Sandbox Code Playgroud)
基本上 sed 认为我只想替换那部分,而我想用新字符串替换整个字符串。我认为 * 会告诉 sed 考虑之后的任何事情,但它不起作用。
因为我不知道“blabla”是什么,所以我不能把它放在 sed 命令中。我如何告诉 sed 查找以“user=”开头的字符串并将整个字符串替换为新字符串?