Предполагая, что мы знаем, что все файлы имеют суффикс имени файла .html
или .txt
и что все каталоги имеют суффикс .directory
, вы можете использовать:
for i in *.txt *.html
do
mv "$i" "${i%%.*}.directory/$i"
done
Запустите это в том же каталоге, где у вас есть файлы. Он удалит конечные.txt и.html из имен файлов, а затем переместит файлы в каталог назначения.
Ответ на другую проблему. Если пользователь хочет отредактировать основной файл уценки и хочет отредактировать индексный файл только в том случае, если он не существует, почему бы не написать функцию для этого? Тогда просто используйте функцию oSports
. Рефакторинг, чтобы иметь общий код в функции.
# Internal edit markdown function
_emd(){
if [ -e "/home/nikhil/Notes/$1/$2.md" ]
then
${Editor:-vim} "/home/nikhil/Notes/$1/$2.md"
else
${Editor:-vim} "/home/nikhil/Notes/$1/index.md"
fi
}
oPhysics(){ _emd Studies Physics ; }
oChemistry(){ _emd Studies Chemistry ; }
oStudies(){ _emd Studies Studies ; }
oiStudies(){ _emd Studies index ; }
oFootball(){ _emd Sports Football ; }
oCricket(){ _emd Sports Cricket ; }
oSports(){ _emd Sports Sports ; }
oiSports(){ _emd Sports index ; }
Обстоятельства не очевидны, но простым решением может быть:
Сначала определите все подобные функции:
oStudies() { oiStudies; }
и др. затем позвольте вашему сценарию переопределить эти функции там, где это необходимо.