[英]How to copy a file with the same name from multiple directories into new directories using cp linux
[英]In linux, copy files with the same name in multiple directories, to a new directory with the path difference as name
我在需要整理和分析的子目录中有几百个输出患者文件。
/project/folder1/folder2/samplenumber/file.filetype
我需要将所有这些从托管区域复制到我自己的工作区进行分析
我想结束
/mydrive/myproject/myfolder/samplenumber.filetype
/mydrive/myproject/myfolder/samplenumber.filetype
/mydrive/myproject/myfolder/samplenumber.filetype
我想像
cp -v /project/folder1/folder2/*/file.filetype /mydrive/myproject/myfolder/*.filetype
会有这个功能吗?
您将需要为此使用 find 命令,在循环中解析输出
find /project/folder1/folder2 -name "*.filetype" | while read line
do
payth=${line%/*.*}
samp=${payth#/*/*/*/}
cp "$line" "/mydrive/myproject/myfolder/$samp.filetype"
done
对于 find 命令返回的每一行,我们将变量 payth 设置为文件的路径(使用 bash 参数扩展和后缀模式匹配)。 然后我们使用这个 payth 变量来获取最后一个目录(利用 bash 参数扩展和前缀模式匹配)将其读入变量 samp。 这个变量 samp 最终在复制命令中用作文件名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.