我要通过
将文件复制到存档目录这是我的尝试
find . -maxdepth 1 -name '*.gz'|xargs -I{} cp {} archive/{}.$(date '+%Y%m%d').gz
假设有一个名为test1.txt.gz的文件
这是给我的
test1.txt.gz.20181214.gz
我想要的是
test1.txt.20181214.gz
请问有什么想法吗?
答案 0 :(得分:1)
您可以使用以下命令:
find . -maxdepth 1 -name '*.gz'| sed 's/\.gz$//' | xargs -I{} cp {}.gz archive/{}.$(date '+%Y%m%d').gz
,您可以通过sed
添加中间处理以删除结尾的“ .gz”扩展名。
您还需要调整cp
命令并将“ .gz”附加到将要复制的文件上,以避免文件找不到错误: cannot access '...': No such file or directory
,因为xargs
命令将没有完整的文件名了。
答案 1 :(得分:0)
如果您具有GNU Parallel,则它看起来像这样:
find . -maxdepth 1 -name '*.gz'| parallel cp {} archive/{.}.$(date '+%Y%m%d').gz