我正在尝试移动某些 .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/