我有这样的文件夹结构:
MAT11NA_09_XX_XX_XXX
MAT11NA_09_XX_XX_XXXL
MAT11NA_11_XX_XX_XXX
MAT11NA_11_XX_XX_XXXL
MAT11NA_10_XX_XX_XXX
MAT11NA_10_XX_XX_XXXL我想从这个服务器复制到另一个文件夹MAT11NA_09_XX_XX_XXX,但不是MAT11NA_09_XX_XX_XXXL。当我完成这个时候,我想复制MAT11NA_09_XX_XX_XXXL而不是MAT11NA_09_XX_XX_XXX。这部分MAT11NA_09_没有变,L在结尾也没有变。
其他文件夹也一样..。
如何在Unix/Linux命令行中做到这一点?
谢谢。
发布于 2009-10-02 19:19:21
与"L“
cp -r *L destination没有"L“
cp -r *[^L] desyination发布于 2009-10-02 19:05:24
对于那些你想要L的人,只要做:
scp -r MAT*L destserver:/whatever/要做那些没有L的事,你需要的是带bash的扩展球体:
shopt -s extglob
scp -r ./!(MAT*L) destever:/whatever/我还没有用scp进行测试,但这大概是一种方法。您还可以考虑使用find命令,类似于(对于不是L的命令)。
find . ! -iname 'MAT*L' ! -iname '.*' -print0 | xargs -0 tar zcf foo.tar.gz然后复制tar文件。
发布于 2009-10-02 19:30:36
好吧我都试过了。
"scp -r MAT*L destserver:/whatever/“--这个看起来很管用。
shopt extglob
scp -r ./!(MAT*L) destever:/whatever/对于这一次,我运行命令"shopt extglob",然后执行副本。但是我得到了"-bash: !: event not found"...so这个错误,它不起作用。
我也试过第一个答案..。文件夹结构类似于这样:
folder1
MAT11NA_09_XX_XX_XXX
MAT11NA_09_XX_XX_XXXL
MAT11NA_11_XX_XX_XXX
MAT11NA_11_XX_XX_XXXL
MAT11NA_10_XX_XX_XXX
MAT11NA_10_XX_XX_XXXL 我想把MAT11NA_09_XX_XX_XXX文件夹放到另一个服务器上的文件夹中。
然后我想把MAT11NA_09_XX_XX_XXXL文件夹放到另一个服务器上的另一个文件夹中。
然后.我想把MAT11NA_11_XX_XX_XXX文件夹放到另一个服务器上的文件夹中(与我放置MAT11NA_09_XX_XX_XXX的文件夹不同)。
MAT11NA_11_XX_XX_XXXL也一样..。
我不想把所有L文件夹放在一个文件夹从另一个服务器,我不想把所有的非L文件夹在另一个文件夹从另一个服务器。
希望你这次能理解抱歉。谢谢。
好的,在最后一个答案之后,我使用了这些内容,它们似乎是有效的:
scp -r MAT11NA_09_*L contentuser@/destination
scp -r MAT11NA_09_*[^L] contentuser@/destinationhttps://serverfault.com/questions/70884
复制相似问题