linux – 将文件移回2目录

$cat file
/tmp/foldera/folderb/folderc/file1
/tmp/folderc/folderd/foldere/file2
/tmp/folderf/folderg/folderh/file3

需要将此文件移动到

/tmp/foldera/
/tmp/folderc/
/tmp/folderf/

分别使用循环或任何简单方便的方法来做到这一点.

解决方法:

使用while循环:

while IFS= read -r l; do
  mv -v -- "$l" "${l%/*/*/*}/"
done <file

> IFS = read -r l将逐行读取文件.
> mv -v移动文件,-v告诉mv是详细的

>“$l”是源文件
>“${l%/ * / * / *} /”是目标目录.它从文件名的后端删除了3个斜杠以及它们之间的内容(/ * / * / *).

这将产生:

»/tmp/foldera/folderb/folderc/file1“ -> »/tmp/foldera/file1“
»/tmp/folderc/folderd/foldere/file2“ -> »/tmp/folderc/file2“
»/tmp/folderf/folderg/folderh/file3“ -> »/tmp/folderf/file3“

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...