1

我正在使用以下命令加入大约 20 个文件,总大小为 40Gb。

cat hda1.ntfs-ptcl-img.gz.* > hda1.ntfs-ptcl-img.gz

只是想知道这个过程通常需要多长时间,因为它已经运行了一段时间。

谢谢。

4

6 回答 6

10

按 Ctrl+Z 暂停作业,然后使用“bg”命令在后台运行它。然后你可以使用'ls -l'来查看输出文件的大小,或者'ls -l /proc/*/fd | grep hda1' 显示正在处理的文件。

于 2009-12-30T08:38:18.073 回答
4

只是想知道这个过程通常需要多长时间

根据此处提供的信息,这是不可能回答的:这取决于您从哪里读取、写入到哪里等。如果您同时从本地磁盘读取和写入本地磁盘,就会出现一些争用。如果您正在通过网络读取或写入,则速度可能会更慢,具体取决于您的网络速度。

要从该过程中获取更多信息,您可以将其从单个 cat 命令分解为 for 循环:

for file in hda1.ntfs-ptcl-img.gz.*
do
  echo "Starting $file at `date`"
  cat $file >> hda1.ntfs.ptcl-img.gz
done

或者,您可以使用pv(pipeview) 实用程序从管道中获取更多信息。来自man pv

pv 允许用户通过提供诸如已用时间、完成百分比(带有进度条)、当前吞吐率、传输的总数据和 ETA 等信息来查看数据通过管道的进度。

要使用它,请将其插入两个进程之间的管道中,并带有适当的选项。它的标准输入将被传递到其标准输出,并且进度将显示在标准错误上。

pv 将依次复制每个提供的文件到标准输出(- 表示标准输入),或者如果没有指定文件,则只复制标准输入。这与 cat(1) 的行为相同。

因此,只需cat在命令行中替换为pv

pv hda1.ntfs-ptcl-img.gz.* > hda1.ntfs-ptcl-img.gz

不过,由于您已经开始了这项工作,因此下次要做什么的提示并不是特别有用。相反,您可以将正在运行的作业置于后台(使用 ctrl+z,然后bg在提示符下运行以使作业继续在后台运行)。如果你幸运的话,你的 livecd 会有watch,所以你可以watch ls -h hda1.ntfs.ptcl-img.gz- 这将每隔几秒运行一次 ls 并使用输出更新屏幕,这样你就可以看到文件随着时间的推移而增长。

如果你还没有watch安装,使用穷人的手表:

while true
do
  clear
  date
  ls -l hda1.ntfs.ptcl-img.gz
  sleep 3
done

您仍然需要自己弄清楚字节的写入速度(以及您还剩下多少时间)。

于 2009-12-30T08:38:55.823 回答
0

在另一个终端中,使用“ls -al”检查输出文件的大小,这样你就会知道你走了多远。

对于进度条,请尝试“pv”(管道查看器): http: //www.catonmat.net/blog/unix-utilities-pipe-viewer/

于 2009-12-30T08:28:06.183 回答
0

您可以创建更复杂的过程,该过程将向您显示已在处理的文件。它不会显示整个过程的时间,但会比你的更详细。

for f in `ls hda1.ntfs-ptc1-img.gz.*`; do
     echo $f
     cat $f >> hda1.ntfs-ptc1.img.gz
done
于 2009-12-30T08:30:09.113 回答
0

简短的回答是,大概一个小时左右。

如果您在本地执行此操作并且尚未返回提示,则它仍在工作。如果您在远程进行操作,那么您的连接可能会超时(取决于一系列因素,例如您是否连接到无线路由器)。

就像其他人所说的那样,这在很大程度上取决于加入了多少文件,无论是本地的还是远程的,您的机器上正在发生的其他进程,您的处理器,时钟速度和 RAM 的位置等等。

确保它正在做某事的最简单方法是打开另一个终端窗口并定期运行“ls -l /path/to/file.name”并查看输出文件是否变大。您还可以运行“top -p PID”(将 PID 替换为实际的进程 ID)以使用 top 仅监视该进程,只要它仍在运行,它就仍在做某事。

于 2009-12-30T08:46:29.163 回答
0

与 Roger 的回答类似,我将运行watch -n 10 "ls -l",它每 10 秒调用一次“ls -l”,让我观察文件的增长情况。或者我会使用watch "du -sh".

我真的不知道在文件操作期间这是否是一件“好”的事情(我想它可能会减慢一点速度?)但它对我有用。

于 2009-12-30T08:53:17.077 回答