linux - 复制文件和一个目录
问题描述
我有一个 txt 文件,其中包含几千个文件,具有以下补丁方案:
/fixed_dir1/fixed_dir2/fixed_dir3/variable_dir1/filename1
/fixed_dir1/fixed_dir2/fixed_dir3/variable_dir1/filename2
/fixed_dir1/fixed_dir2/fixed_dir3/variable_dir2/filename3
我想遍历所有文件,然后将 variable_dir/filename 复制到一个 newdir 中,例如最终得到如下内容:
/new/path/variable_dir1/filename1
/new/path/variable_dir1/filename2
/new/path/variable_dir2/filename3
你能为我提供一个用于 bash 的小型 shell 脚本吗?
解决方案
然后你可能会使用一个while循环
while read ;
do
rep=s( echo $REPLY | sed 's/.\/dir3//' ) #bad method but more readable
mkdir -p new/$rep && cp $REPLY new/$rep/
done < filesource
例子
francois@zaphod:~/tmp/test$ touch filename{1,2,3,4}
francois@zaphod:~/tmp/test$ ls filename* > toto
francois@zaphod:~/tmp/test$ while read ; do mkdir filename$REPLY && cp $REPLY filename$REPLY ; done < toto
francois@zaphod:~/tmp/test$ tree
.
├── filename1
├── filename2
├── filename3
├── filename4
├── filenamefilename1
│ └── filename1
├── filenamefilename2
│ └── filename2
├── filenamefilename3
│ └── filename3
├── filenamefilename4
│ └── filename4
推荐阅读
- php - 用php将一个数字放入一个范围内
- java - 在 android studio 中完成构建的问题
- spring - Spring Data JPA .save() 方法未保存在数据库中
- java - 如何从 EAR 库中删除项目(不是 jar)?
- c# - Asp.net 4 类对象属性在返回视图时设置为 null
- objective-c - 将 Cocoa NSArray 传递给 Applescript 列表
- javascript - 在 JS 中分离正则表达式
- python - Anaconda:尽管安装无法导入 ibm_db
- powershell - PowerShell - SendOnBehalf 未在循环中添加所有用户
- android - 来自 admob 的广告需要显示多长时间才能计为展示次数