![运行 bash 脚本将 .csv 附加到子目录中的文件,从计算机中移动/删除了所有文件](https://linux22.com/image/10496/%E8%BF%90%E8%A1%8C%20bash%20%E8%84%9A%E6%9C%AC%E5%B0%86%20.csv%20%E9%99%84%E5%8A%A0%E5%88%B0%E5%AD%90%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%8C%E4%BB%8E%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%AD%E7%A7%BB%E5%8A%A8%2F%E5%88%A0%E9%99%A4%E4%BA%86%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6.png)
我有一个包含 100 个子文件夹的文件夹,每个文件夹中包含两个我想要添加 .csv 的文件。我写了一个bash脚本:
#!/bin/bash
for i in * ; do
cd $i
for k in *; do
mv "$k" "${f%.*}.csv"
done
cd ..
done
我的所有文件都到哪里去了?我怎样才能把它们找回来?
答案1
mv "$k" "${f%.*}.csv"
由于f
未定义变量,因此整个替换不等于空字符串,并且命令变为mv "$k" ".csv"
。
每个目录中除一个文件外的所有文件均已丢失。最后一个现在被命名为.csv
。您可能没有注意到它,因为开头的点使文件隐藏;用于ls -a
查看此类文件。 GUI 文件管理器通常也有一个显示隐藏文件的选项。