作为清理服务器上文件夹的脚本的一部分,我编写了一个查找regex (在MacOS12.6.x上),它将查找命名为"YYYY_MM_DD“的目录,然后将目录的名称更改为"newName”。
我可能会挂载服务器,然后从Mac运行脚本。我知道将其转移到Linux服务器并使用gnu find运行可能更有意义,但我只是在学习bash脚本,所以我必须在mac上进行测试,然后更改以在Linux上运行。
在将find命令合并到脚本中之前,我正在测试它。我想确保结果是正确的。
当我运行这个find命令时,即使命令工作正常,我还是会得到一个错误“没有这样的文件或目录”。
我一直在googling,并且不知道为什么当命令工作时我会收到这个错误。
这是find命令和结果:
$ find -E ./ -type d -regex '.*([0-9]+(_[0-9]+)+)已找到名为"2021_03_17“的目录,并按我的要求将其重命名为"newName”。为什么它显示“没有这样的文件或目录”? -execdir mv {} "newName" \;
find: .//folder1/folder2/2021_03_17: No such file or directory已找到名为"2021_03_17“的目录,并按我的要求将其重命名为"newName”。
为什么它显示“没有这样的文件或目录”?
发布于 2023-04-01 16:42:53
逃跑的好命令:
find -E ./foo -type d -regex '.*([0-9]+(_[0-9]+)+)vagrant@freebsd:~ % tree foo
foo
└── bar
└── 2023_02_23
3 directories, 0 files
vagrant@freebsd:~ % find -E ./foo -type d -regex '.*([0-9]+(_[0-9]+)+) -depth -execdir mv {} "newName" \;A1 -depth -execdir mv {} "newName" \;
vagrant@freebsd:~ % tree foo
foo
└── bar
└── newName
3 directories, 0 files -depth -execdir mv {} "newName" \;A1
https://unix.stackexchange.com/questions/741673
复制相似问题