У меня была папка со 100 подпапками, и в каждой папке было два файла, в которые я хотел добавить .csv. Я написал сценарий bash:
#!/bin/bash
for i in * ; do
cd $i
for k in *; do
mv "$k" "${f%.*}.csv"
done
cd ..
done
Куда делись все мои файлы? Как мне их вернуть?
mv "$k" "${f%.*}.csv"
Поскольку переменная f
не определена, вся подстановка не представляет собой пустую строку, и команда становится mv "$k" ".csv"
.
Все файлы, кроме одного, в каждом каталоге потеряны. Последний теперь называется .csv
. Вы, вероятно, этого не заметили, потому что точка в начале делает файл скрытым; используйте ls -a
, чтобы увидеть такие файлы. Файловые менеджеры с графическим интерфейсом обычно также имеют возможность отображать скрытые файлы.