我正在使用AIX操作系统。
当我尝试使用以下命令将一个文件夹中的所有文件复制到另一个文件夹时:
cp ./00012524/*.PDF ./dummy01
终端会报错:
ksh:/usr/bin/cp:0403-027 参数列表过长。
如何解决这个问题?我的文件夹中包含8xxxx个文件,如何快速复制它们?每个文件的大小在4x kb到1xx kb之间。
我正在使用AIX操作系统。
当我尝试使用以下命令将一个文件夹中的所有文件复制到另一个文件夹时:
cp ./00012524/*.PDF ./dummy01
终端会报错:
ksh:/usr/bin/cp:0403-027 参数列表过长。
如何解决这个问题?我的文件夹中包含8xxxx个文件,如何快速复制它们?每个文件的大小在4x kb到1xx kb之间。
find ./00012524 -type f -name "*.PDF" -exec cp {} ./dummy01/ \; -print
cp命令存在一定的限制,即无法同时复制大量文件。
你可以通过多次使用基于文件模式的cp命令来复制它们,例如:
cp ./00012524/A*.PDF ./dummy01
cp ./00012524/B*.PDF ./dummy01
cp ./00012524/C*.PDF ./dummy01
...
cp ./00012524/*.PDF ./dummy01
find ./00012524 -name "*.PDF" -exec cp {} ./dummy01/ \;
$ ( cd 00012524; ls | grep '\.PDF$' | xargs -I{} cp {} ../dummy01/ )
-t
标志对于cp
命令在这里非常有用:
find ./00012524 -name \*.PDF -print | xargs cp -t ./dummy01
复制大量文件从一个目录到另一个目录的最佳命令。
find /path/to/source/ -name "*" -exec cp -ruf "{}" /path/to/destination/ \;
这对我非常有帮助。
cp: illegal option -- u
- geoidesic
# you can use the -rv to check the status of the command verbose
for i in /from_dir/*; do cp -rv "$i" /to_dir/; done
for f in $(ls ./00012524/*.pdf)
do
cp $f ./dummy01
done
我无法测试这个,但理论上应该可以工作。
for f in ./00012524/*.pdf; do
,但是使用 find
+xargs
+cp -t
更快。 - Zsigmond Lőrinczy