我正在尝试使用rsync
备份包含特定单词的文件夹,使用ls
、grep
和rsync
。然而rsync
好像无法接受grep
的输出作为输入。我尝试了以下方法:
$ ls -d $PWD/** | grep March | rsync -av 'dst'
这实际上并没有做任何事情,即使只使用
ls -d $PWD/** | grep March
也可以产生我想要移动的文件夹列表。$ ls -d $PWD/** | grep March | xargs -0 | rsync -av 'dst'
$ ls -d $PWD/** | grep March | xargs -0 echo | rsync -av 'dst'
$ ls -d $PWD/** | grep March | xargs -0 rsync -av 'dst'
许多(包括
dst
,这里我用\
转义空格)的文件夹名称中都包含空格,我认为这可能会引起问题,所以尝试使用xargs
命令来帮助移动它们,但依然无法移动。我已经尝试使用
sudo
、rsync
的-avu
选项以及-r
选项(即使-a
选项已经包含了-r
),并通常使用--dry-run
选项进行测试,但也尝试过不加该选项的情况。我做错了什么?是否可以像这样把输入内容传输给
rsync
?我使用的是OSX 10.13.3操作系统,GNU bash版本为3.2.57(1)。
谢谢。
echo
与xargs
是调试的最简单方法... - Gert van den Berg