答案1
第一步是检查复制操作是否已完成。我想你已经检查过这一步了。
第二步是检查缓冲区是否被刷新(RAM 中的缓冲数据最终被写入目标设备,以便文件内容确实存储在驱动器中分区的文件中)。
您可以运行
sync
来刷新缓冲区。当sync
完成并bash
返回提示时,第二步也已完成。
有一个工具可以监视读/写活动,
iotop
使用以下命令安装它sudo apt install iotop
并使用以下命令行运行它
sudo iotop -o
答案2
如果没有看到实际的脚本,就很难知道您对文件操作使用了什么样的命令。
一个非常简单的选择是,在复制/移动操作完成后简单地创建一个临时文件,如下所示
#copy action
cp $1 /home/user/backup/
touch /tmp/finished.tmp
然后检查文件是否存在或是否有最近的更改
ls -lha /tmp/finished
或进行自动定期检查
watch ls -lha /tmp/finished
根据您的需要,您可以命名每个临时文件,就像它代表的复制/移动作业一样,也许都在同一个目录中
# set the variable JOBNAME via input or via sourcename
# JOBNAME=$SOURCE
# JOBNAME=$2
mkdir /tmp/copyjobs
# your copy job here
touch /tmp/copyjobs/finished.$JOBNAME.tmp
# your next copy job here
touch /tmp/copyjobs/finished.$JOBNAME.tmp
然后查看整个目录
watch ls -lha /tmp/copyjobs/
根据您的技能,您还可以使用循环等等。
类似的工具同步命令行有一个内置的进度条,这样你就可以看到你的工作进展到了什么程度- 进步或者-P。
但 rsync 可能不是适合这个工作的工具。
答案3
“gcp”是你的朋友:)
这就是你需要的吗?
$ gcp -rf test.file tmp/
Copying 404.32 MiB 100% |############################| 471.12 MB/s Time: 0:00:00
答案4
在以下 git 存储库中检查 progress_bar 的源代码:
https://github.com/Kiran-Bose/supreme
还可以尝试自定义 bash 脚本包最高
从上述存储库下载 deb 文件并将其安装在基于 debian 的系统上。
功能概述
(1)打开应用程序----Firefox----计算器----设置
(2)管理文件 ----搜索 ----导航 ----快速访问
|----Select File(s)
|----Inverse Selection
|----Make directory
|----Make file
|----Open
|----Copy
|----Move
|----Delete
|----Rename
|----Send to Device
|----Properties
(3)管理手机 ----从手机移动/复制 ----移动/复制到手机 ----同步文件夹
(4)管理USB ----从USB 移动/复制 ----移动/复制到USB