summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Reisner <dreisner@archlinux.org>2013-02-17 12:02:20 -0500
committerAllan McRae <allan@archlinux.org>2013-02-24 13:11:54 +1000
commit972528c021606934da85aef1d9223dea1d40e2c6 (patch)
treed91d1278bf359388cc8cf1addec13f2ed6794409
parent34749e177db5d4aafdb9f3de630c7ab193a0f36d (diff)
downloadpacman-972528c021606934da85aef1d9223dea1d40e2c6.tar.xz
paccache: use xargs to execute mv/rm commands
This removes the restriction on the length of the command line, as xargs will work around by running multiple instances of the command for us. As seen: https://bbs.archlinux.org/viewtopic.php?pid=1232959 Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--contrib/paccache.sh.in4
1 files changed, 2 insertions, 2 deletions
diff --git a/contrib/paccache.sh.in b/contrib/paccache.sh.in
index 74bac8a4..46eb2306 100644
--- a/contrib/paccache.sh.in
+++ b/contrib/paccache.sh.in
@@ -310,9 +310,9 @@ totalsaved=$(@SIZECMD@ "${candidates[@]}" | awk '{ sum += $1 } END { print sum }
# crush. kill. destroy.
(( verbose )) && cmdopts+=(-v)
if (( delete )); then
- runcmd rm "${cmdopts[@]}" "${candidates[@]}"
+ printf '%s\0' "${candidates[@]}" | runcmd xargs -0 rm "${cmdopts[@]}"
elif (( move )); then
- runcmd mv "${cmdopts[@]}" "${candidates[@]}" "$movedir"
+ printf '%s\0' "${candidates[@]}" | runcmd xargs -0 mv "${cmdopts[@]}" -t "$movedir"
fi
summarize "$pkgcount" "${candidates[@]}"