我发现/ dev / shm / split / 1 /中的文件数量为42806,使用:
/bin/ls -lU /dev/shm/split/1/ | wc -l
我似乎无法在网上找到的是如何选择某个范围,例如21404-42806,并使用scp安全地复制这些文件。然后,出于管理目的,我想将我复制的文件移动到另一个文件夹,例如/ dev / shm / split / 2 /。
如何使用CentOS做到这一点?
我试过了:
sudo chmod 400 ~/emails/name.pem ; ls -1 /dev/shm/split/1/ | sed -n '21443,42806p' | xargs -i scp -i ~/emails/name.pem {} root@ipaddress:/dev/shm/split/2/
这产生了:
no such file or directory
所有文件的错误......
答案 0 :(得分:1)
ls
本身列出了与您提供的目录相关的文件。这意味着您的ls
打印目录中的文件名,但稍后,scp没有它们的路径。您可以通过以下两种方式解决这个问题:
提供scp
的路径:
ls -1 /dev/shm/split/1/ | sed -n '21443,42806p' | xargs -i \
scp -i ~/emails/name.pem /dev/shm/split/1/{} root@ipaddress:/dev/shm/split/2/
更改到该目录,它将起作用:
cd /dev/shm/split/1/; ls -1 | sed -n '21443,42806p' | xargs -i \
scp -i ~/emails/name.pem {} root@ipaddress:/dev/shm/split/2/