在一些测试过程中,我运行了 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