出現錯誤:
bash: /usr/bin/cp: argument list too long
解決方法一
#! /bin/ksh
counts=0
for filename in `ls /home/user/data`
do
counts=`expr $counts + 1`
echo "cp to (b) $filename"
cp /home/user/data/$filename /mnt/xxx/data
done
參考
http://stackoverflow.com/questions/5892339/unix-cp-argument-list-too-long
解決方法二
分批次複製 (或刪除、搬移)
cp [0-9]* /path
cp [a-f]* /path
cp [g-k]* /path
解決方法三
find /home/user/data -type f -exec cp {} /mnt/xxx/data \;
或
find /home/user/data/*.log -type f -exec cp {} /mnt/xxx/data \;
另
刪除大量檔案的方法
方法一
1.建立一個空目錄
$ mkdir /tmp/folder
2.開始刪除
**特別注意 /tmp/folder/ 後面要加上斜線
$ rsync --delete-before -d /tmp/folder/ /home/myfolder/
參考方法二
ls /tmp/*.log | xargs rm -f
https://www.slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux
*建立大量小檔案來測試的技巧
for i in $(seq 1 500); do echo testing >> $i.txt; done