ubuntu - 在 Ubuntu 上使用 find 和 tar 移动多个文件

标签 ubuntu find tar travis-ci

我正在尝试移动某些 .ipynb使用以下命令从一个目录到另一个目录的文件:
find . -name "*failed.ipynb" -print0 | xargs -0 tar cvf "-" | (cd ./fails ; tar xfp "-")
该命令在 OS X 和 CentOS 上运行良好,但是当在 Ubuntu 机器上的 Travis CI 上运行时,它会在文件名中有空格的地方失败。

我以为 -print0-0 options 应该解决这个问题,我做错了什么吗?

编辑
输出如下所示:

$ source ./scripts/runipy.sh
Processing science/Transients/Followup Observatories.ipynb
science/Transients/Followup Observatories.ipynb failed.

The following notebooks failed
tar: ./science/Transients/Followup: Cannot stat: No such file or directory
tar: Observatories.ipynb-failed.ipynb: Cannot stat: No such file or directory
.ipynb 失败了文件的文件名中有一个空格。

谢谢

最佳答案

可以用cpio吗反而?它从 stdio 读取文件名,因此空格没有问题。 (虽然可能有换行符,在这种情况下有 -0 选项。)

find . -name "*failed.ipynb" | cpio -pd ./fails

关于ubuntu - 在 Ubuntu 上使用 find 和 tar 移动多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32465073/

相关文章:

javascript - 在 Javascript ES6 map 中获取或设置元素?

vba - 在避免循环的范围内更改值,以提高速度

ubuntu - Ubuntu 17.10 上的 Tilda 终端

maven - Teamcity 中 maven 构建的 protoc 权限被拒绝

c - Ubuntu C 中 pthread_join() 的功能

perl - Perl 如何验证一个路径是一个目录,但又不能同时调用 opendir() 呢?

ubuntu - "-bash: ./ngrok: cannot execute binary file: Exec format error"

linux - 如何添加 tar -tf 的所有输出

static-libraries - 如何构建静态 tar 命令

linux - Arch Linux 安装 : This kernel requires an x86-64 CPU, 但只检测到 i686 CPU