Quellcode durchsuchen

Add a new shell command: cp_p (cp with a progress bar).

Emmanuel Bouthenot vor 14 Jahren
Ursprung
Commit
172c882081
1 geänderte Dateien mit 20 neuen und 0 gelöschten Zeilen
  1. 20 0
      .zsh.d/os.d/Linux.zsh

+ 20 - 0
.zsh.d/os.d/Linux.zsh

@@ -17,3 +17,23 @@ else
     alias l='ls -lh'
 fi
 
+# Fancy cp with progressbar (using strace)
+# from http://chris-lamb.co.uk/2008/01/24/can-you-get-cp-to-give-a-progress-bar-like-wget/
+
+cp_p() {
+    strace -q -ewrite cp -- "${1}" "${2}" 2>&1 | awk '{
+        count += $NF
+            if (count % 10 == 0) {
+                percent = count / total_size * 100
+                printf "%3d%% [", percent
+                for (i=0;i<=percent;i++)
+                    printf "="
+                printf ">"
+                for (i=percent;i<100;i++)
+                    printf " "
+                printf "]\r"
+            }
+        }
+        END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
+}
+