使用查找来定位,移动和符号链接与[0-9] {1,10} / *相匹配的目录树

杰克狗

我需要移动一些目录并使其返回符号链接。

目录结构如下:

/storage1
/storage1/123/named_directory_1
/storage1/123456/named_directory_2
/storage1/123456789/named_directory_3

我想将命名目录移动到其他地方匹配编号的目录,如下所示:

/storage2
/storage2/123/named_directory_1
/storage2/123456/named_directory_2
/storage2/123456789/named_directory_3

然后将那些命名目录符号链接回去。带编号的目录在每个存储上均作为独立目录保留,但应将命名目录从storage1上的相应编号目录符号链接到storage2上匹配的编号目录。

我制定了一个查找命令,该命令与我想要的find . -type d -mindepth 2 -maxdepth 2 -regextype grep -regex ".*/[0-9]\{1,10\}/.*"匹配与所有这些都匹配:

/storage2/123/named_directory_1
/storage2/123456/named_directory_2
/storage2/123456789/named_directory_3

但我不知道如何进行所有操作。像这样的东西,但是您可以看到我不知道如何获取$number$numberandname...但是我一直在尝试使用BASH参数和替代方法,但是我不太正确。

echo "${named#*/}"
named_directory_1

和这个:

echo "${named%/*}"
/storage/123

这是我最好的脚本概述:

while read -r named; do
export numberandname="${named#/*/*/*/}"
export number="${numberandname%/*}"
    mv -- "$named" "/storage2/$number/"
    ln -s -- "/storage2/$numberandname "$named"
done < <(find /storage1/ -type d -mindepth 2 -maxdepth 2 -regextype grep -regex ".*/[0-9]\{1,10\}/.*")
最小最大

我在您的代码中添加了一些改进(我认为)。

1)我被用于命令-printf '%P\n'选项find,这给了没有storage1部分的路径
2)删除了export命令,因为这里不需要。

#!/bin/bash

src_dir="storage1"
dest_dir="storage2"    

nums_and_names=$(find "$src_dir" -type d -mindepth 2 -maxdepth 2 -regextype grep -regex ".*/[0-9]\{1,10\}/.*" -printf '%P\n')

while read -r named; do
    echo mv -- "${src_dir}/$named" "${dest_dir}/${named%/*}"
    echo ln -s -- "${dest_dir}/$named" "${src_dir}/$named" 
done <<< "$nums_and_names"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在R中,函数seq(1,10)和seq(1:10)具有相同的输出,为什么函数mean(1,10)和mean(1:10)具有不同的输出?

来自分类Dev

0-9和[[:digit:]]将匹配1-10,但不超过

来自分类Dev

解决Java Checkstyle错误:名称'logger'必须与模式'^ [AZ] [A-Z0-9] *(_ [A-Z0-9] +)* $'相匹配

来自分类Dev

JAXB无法在Tomcat 9和Java 9/10

来自分类Dev

Git:使工作树与参考相匹配

来自分类Dev

“ 00000000000000000000000000000”匹配正则表达式“ ^ [1-9] | 0 $”

来自分类Dev

AMQP 0-9-1和1-0

来自分类Dev

IE 9和10背景位置

来自分类Dev

IE 9、10:div结构和事件

来自分类Dev

JDBC和Hive查询错误10或9

来自分类Dev

Linux:在目录树中查找文件* .log,并在每个目录树中最后写10行

来自分类Dev

使用10 ** 9的费用超过1000000000?

来自分类Dev

如何使此脚本返回数字0-9而不是1-10

来自分类Dev

一旦找到匹配项,如何停止查找目录树?

来自分类Dev

计算和打印C中较大的N(2 ^ N-1)mod(10 ^ 9 + 7)

来自分类Dev

使用十六进制在9位上表示-1(10的二进制补码

来自分类Dev

nCr mod 10^9 + 7 对于 n<=10^9 和 r <=1000

来自分类Dev

MySQL查找与ID相匹配的平均值

来自分类Dev

DailyCodingProblem,在阵列查找一对相匹配的给定值

来自分类Dev

我想把数组 [1,2,3,4,5,6,7,8,9,10,11] 变成数组 [1,2,3,4,5,6,7,8,9,1 ,0,1,1] 仅使用此算法

来自分类Dev

如何使用自制Mac上安装Java 9和10?

来自分类Dev

为什么匹配 grep 模式 '[^a-z0-9\.\/_\-\ +@)(&]' 匹配 '-'

来自分类Dev

使用locate命令仅查找文件,不包括符号链接和目录

来自分类Dev

将“ uniqid”与相应的性别和年龄相匹配。

来自分类Dev

仅使用查找来查找前几个匹配的文件?

来自分类Dev

Windows 10:跨分区移动包含目录符号链接的文件夹

来自分类Dev

Java Reg接受*不在[0-9] * [-/] {0,1} [0-9] *中的*-是Bug吗?

来自分类Dev

ffmpeg-输入链接in1:v0参数(大小640x640,SAR 16:9)与相应的输出链接in0:v0参数(640x640,SAR 427:240)不匹配

来自分类Dev

角响应表在Internet Explorer 9(IE 9)上不起作用。与IE 10搭配使用

Related 相关文章

  1. 1

    在R中,函数seq(1,10)和seq(1:10)具有相同的输出,为什么函数mean(1,10)和mean(1:10)具有不同的输出?

  2. 2

    0-9和[[:digit:]]将匹配1-10,但不超过

  3. 3

    解决Java Checkstyle错误:名称'logger'必须与模式'^ [AZ] [A-Z0-9] *(_ [A-Z0-9] +)* $'相匹配

  4. 4

    JAXB无法在Tomcat 9和Java 9/10

  5. 5

    Git:使工作树与参考相匹配

  6. 6

    “ 00000000000000000000000000000”匹配正则表达式“ ^ [1-9] | 0 $”

  7. 7

    AMQP 0-9-1和1-0

  8. 8

    IE 9和10背景位置

  9. 9

    IE 9、10:div结构和事件

  10. 10

    JDBC和Hive查询错误10或9

  11. 11

    Linux:在目录树中查找文件* .log,并在每个目录树中最后写10行

  12. 12

    使用10 ** 9的费用超过1000000000?

  13. 13

    如何使此脚本返回数字0-9而不是1-10

  14. 14

    一旦找到匹配项,如何停止查找目录树?

  15. 15

    计算和打印C中较大的N(2 ^ N-1)mod(10 ^ 9 + 7)

  16. 16

    使用十六进制在9位上表示-1(10的二进制补码

  17. 17

    nCr mod 10^9 + 7 对于 n<=10^9 和 r <=1000

  18. 18

    MySQL查找与ID相匹配的平均值

  19. 19

    DailyCodingProblem,在阵列查找一对相匹配的给定值

  20. 20

    我想把数组 [1,2,3,4,5,6,7,8,9,10,11] 变成数组 [1,2,3,4,5,6,7,8,9,1 ,0,1,1] 仅使用此算法

  21. 21

    如何使用自制Mac上安装Java 9和10?

  22. 22

    为什么匹配 grep 模式 '[^a-z0-9\.\/_\-\ +@)(&]' 匹配 '-'

  23. 23

    使用locate命令仅查找文件,不包括符号链接和目录

  24. 24

    将“ uniqid”与相应的性别和年龄相匹配。

  25. 25

    仅使用查找来查找前几个匹配的文件?

  26. 26

    Windows 10:跨分区移动包含目录符号链接的文件夹

  27. 27

    Java Reg接受*不在[0-9] * [-/] {0,1} [0-9] *中的*-是Bug吗?

  28. 28

    ffmpeg-输入链接in1:v0参数(大小640x640,SAR 16:9)与相应的输出链接in0:v0参数(640x640,SAR 427:240)不匹配

  29. 29

    角响应表在Internet Explorer 9(IE 9)上不起作用。与IE 10搭配使用

热门标签

归档