1 linux
我有一个同名(不同数据)的文件,它位于多个目录中。
一个例子:
/path/to/this/dir1/data.csv
/path/to/this/dir2/data.csv
/path/to/this/dir3/data.csv
/path/to/this/dir4/data.csv
Run Code Online (Sandbox Code Playgroud)
我想将这些文件(其各自的文件夹直接位于其上方)复制到新位置。
我试过这样的事情(dir1、dir2、dir3、dir4已经做好了):
cp -rf /path/to/this/{dir1,dir2,dir3,di4}/data.csv ./{dir1,dir2,dir3,dir4}/.
Run Code Online (Sandbox Code Playgroud)
这当然不起作用,但我不确定如何正确地在一行中完成(这将是首选,但如果需要编写脚本并不是什么大问题)。
如果您cp
支持该--parents
选项,则可以使用
cd /path/to/this
cp --parents dir{1..4}/data.csv /path/to/target/
Run Code Online (Sandbox Code Playgroud)
该for
循环也应努力:
for data in /path/to/this/dir{1..4}/data.csv ; do
cp $data ${data#path/to/this/}
done
Run Code Online (Sandbox Code Playgroud)
或者,使用find
(没有大括号扩展 ivolved):
cd /path/to/this
find -path './dir[1234]' -exec cp {}/data.csv /path/to/target/{} \;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1897 次 |
最近记录: |