Copy/paste 个文件从一个目录到另一个目录

Copy/paste files from one directory to another

你能告诉我我的简单代码有什么问题吗? (Mac Bash)

我正在尝试将所有名为 vol_0000.nii 的文件从一个目录复制到另一个目录。我用“*”替换了可变文件名。所有文件 (vol_0000.nii) 具有相同的名称,但它们位于不同的文件夹中(以“*”表示)。我不确定它们在被复制时是否会相互替换,因为它们与 cp 创建的名称相同,例如 vol_00001.nii、vol_00002.nii 等等..?

cp /Users/dave/biomkr/dat/*/rs/orig/vol_0000.nii /Users/dave/Documents/MIT_Har_stu/rsfmri

像这样的事情应该可以完成这项工作,使用与您在问题中提到的类似的编号行为。

#!/bin/bash
i=0
for src in /Users/dave/biomkr/dat/*/rs/orig/vol_0000.nii
do
    dest=$(basename "$src")
    dest=${dest/.nii/_$i.nii}
    cp "$src" "/Users/dave/Documents/MIT_Har_stu/rsfmri/$dest"
    let i++
done

另一个选择是创建一个子目录,基于替换原始 glob 中的 * 的目录名称,我们可以用一点 string replacement.

得到
#!/bin/bash
for src in /Users/dave/biomkr/dat/*/rs/orig/vol_0000.nii
do
    srcdir=${src#/Users/dave/biomkr/dat/}
    srcdir=${srcdir%/rs/orig/vol_0000.nii}
    srcdir="/Users/dave/Documents/MIT_Har_stu/rsfmri/$srcdir/"
    mkdir -p "$srcdir"
    cp "$src" "$srcdir"
done