移动目录名称后恢复文件?

移动目录名称后恢复文件?

在一些测试过程中,我运行了 bast 脚本

for file in *; do
    mv -v "$file" "$file#_*"
done

或类似的规定。计划是从目录名称中删除前缀,但我不小心在我的主目录而不是我创建的测试目录中运行了它......

我的理解是,目录内的所有文件都应该是“安全的”(如,未删除),但我现在无法通过目录结构访问它们。

有没有办法恢复这些文件?

提前致谢。

更新看来我的记忆不正确:循环中的命令for实际上是echo mv ....不知何故,〜中的所有目录和文件都被移动到我的视频目录,但看起来完好无损。

答案1

我不完全确定你在那里做了什么,但如果你问题中的命令是你运行的命令,你应该能够反转它:

for f in *
do echo mv -v "$f" "${f%"#_*"}"
done

echo在确定该命令有效之前,请不要从该命令中删除,但是,为了解释为什么我认为它会起作用,这就是我所做的:

for f in $(seq 100)
do echo $f > file$f
done

这让我有 100 个文件,例如file1-file100并且每个文件都包含其编号,因此:

$ cat file100
100

像那样。然后我做了你的事:

for f in *
do mv -v "$f" "$f#_*"
done

我有一堆文件,例如file1#_*- file100#_*.然后我做了我粘贴在第一个代码块中的事情,但是没有回声,我做了......

$ cat file100
100

相关内容