Bugün sizlere, Linux sistemlerinde dosya uzantılarını yönetmek için kullanabileceğiniz oldukça kullanışlı bir Bash betiğinden bahsetmek istiyorum. Bu betik, kullanıcıdan bir dosya uzantısı alarak, bu uzantıya karşılık gelen MIME türünü belirliyor ve ardından varsayılan uygulamayı sıfırlamanıza olanak tanıyor. Özellikle dosya türleriyle çalışırken, varsayılan uygulamaları ayarlamak bazen can sıkıcı olabiliyor. İşte bu betik, bu süreci oldukça basit hale getiriyor.
Betiğin İşleyişi
Dosya Uzantısını Alma:
Betik, zenity aracı kullanarak kullanıcıdan bir dosya uzantısı girmesini istiyor. Örneğin, .txt gibi bir uzantı girebilirsiniz. Eğer kullanıcı hiçbir şey girmezse, bir hata mesajı ile işlem iptal ediliyor. Bu, kullanıcı deneyimini artıran güzel bir özellik.
MIME Türünü Belirleme:
Girdiğiniz uzantıya göre, betik bir case yapısı kullanarak uygun MIME türünü belirliyor. Bu, dosya türlerinin doğru bir şekilde tanımlanmasını sağlıyor. Eğer geçersiz bir uzantı girerseniz, yine bir hata mesajı alıyorsunuz. Bu sayede yanlış bir işlem yapma olasılığınız en aza iniyor.
Varsayılan Uygulama Seçimi:
MIME türü belirlendikten sonra, kullanıcıdan varsayılan uygulama adını girmesi isteniyor. Örneğin, gedit.desktop gibi bir uygulama adı verebilirsiniz. Eğer bu aşamada da bir şey girmezseniz, işlem iptal ediliyor.
Varsayılan Uygulamayı Sıfırlama:
Son olarak, xdg-mime komutu kullanılarak belirtilen MIME türü için varsayılan uygulama sıfırlanıyor. Eğer işlem başarılı olursa, kullanıcıya bir bilgi mesajı gösteriliyor.
Neden Kullanmalısınız?
Bu betik, özellikle dosya türleriyle sıkça çalışan kullanıcılar için büyük bir kolaylık sağlıyor. Varsayılan uygulamaları ayarlamak bazen karmaşık hale gelebiliyor, ancak bu betik sayesinde her şey çok daha basit ve kullanıcı dostu bir hale geliyor. Ayrıca, zenity kullanarak grafiksel bir arayüz sunması, komut satırında kaybolmadan işlemleri yapmanıza olanak tanıyor.
Benim gibi eğer Linux sistemlerinde dosya uzantılarıyla ilgili bir sorun/sorunlar yaşıyorsanız veya varsayılan uygulamaları yönetmekte zorlanıyorsanız, bu betiği denemenizi kesinlikle tavsiye ederim. Umarım faydalı olur!
Herhangi bir sorunuz olursa, buraya yazın... İyi çalışmalar!
Betik Adı : reset_default_apps.sh
Kod İçeriği :
Kod: Tümünü seç
#!/bin/bash
# Kullanıcıdan dosya uzantısını al
fileExtension=$(zenity --entry --title="Dosya Uzantısı Sıfırlama" --text="Sıfırlamak istediğiniz dosya uzantısını (örneğin: .txt) girin:")
# Dosya uzantısının geçerli olup olmadığını kontrol et
if [[ -z "$fileExtension" ]]; then
zenity --error --text="Hiçbir uzantı girmediniz. İşlem iptal edildi."
exit 1
fi
# MIME türünü belirleme
case "$fileExtension" in
.a) mimeType="application/x-archive" ;;
.apk) mimeType="application/vnd.android.package-archive" ;;
.bat) mimeType="application/bat" ;;
.bin) mimeType="application/octet-stream" ;;
.bz2) mimeType="application/x-bzip2" ;;
.cab) mimeType="application/vnd.ms-cab-compressed" ;;
.c) mimeType="text/x-c" ;;
.class) mimeType="application/java-vm" ;;
.cmd) mimeType="application/x-msdownload" ;;
.com) mimeType="application/x-msdownload" ;;
.conf) mimeType="text/plain" ;;
.cpp) mimeType="text/x-c++" ;;
.csv) mimeType="text/csv" ;;
.cxx) mimeType="text/x-c++" ;;
.deb) mimeType="application/x-debian-package" ;;
.dll) mimeType="application/x-msdownload" ;;
.dmg) mimeType="application/x-apple-diskimage" ;;
.doc) mimeType="application/msword" ;;
.docx) mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" ;;
.exe) mimeType="application/x-msdownload" ;;
.flac) mimeType="audio/flac" ;;
.flv) mimeType="video/x-flv" ;;
.gif) mimeType="image/gif" ;;
.gz) mimeType="application/gzip" ;;
.h) mimeType="text/x-c" ;;
.html) mimeType="text/html" ;;
.iso) mimeType="application/x-iso9660-image" ;;
.jar) mimeType="application/java-archive" ;;
.jpeg|.jpg) mimeType="image/jpeg" ;;
.js) mimeType="application/javascript" ;;
.json) mimeType="application/json" ;;
.log) mimeType="text/plain" ;;
.m4a) mimeType="audio/mp4" ;;
.m4v) mimeType="video/x-m4v" ;;
.md) mimeType="text/markdown" ;;
.mp3) mimeType="audio/mpeg" ;;
.mp4) mimeType="video/mp4" ;;
.mpeg) mimeType="video/mpeg" ;;
.mpg) mimeType="video/mpeg" ;;
.msi) mimeType="application/x-msi" ;;
.odt) mimeType="application/vnd.oasis.opendocument.text" ;;
.ogg) mimeType="audio/ogg" ;;
.pdf) mimeType="application/pdf" ;;
.png) mimeType="image/png" ;;
.ppt) mimeType="application/vnd.ms-powerpoint" ;;
.pptx) mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" ;;
.py) mimeType="text/x-python" ;;
.rar) mimeType="application/x-rar-compressed" ;;
.rb) mimeType="text/x-ruby" ;;
.rpm) mimeType="application/x-rpm" ;;
.sh) mimeType="application/x-shellscript" ;;
.svg) mimeType="image/svg+xml" ;;
.tar) mimeType="application/x-tar" ;;
.tgz) mimeType="application/x-compressed-tar" ;;
.txt) mimeType="text/plain" ;;
.vbs) mimeType="text/vbscript" ;;
.wav) mimeType="audio/wav" ;;
.webm) mimeType="video/webm" ;;
.wmv) mimeType="video/x-ms-wmv" ;;
.xls) mimeType="application/vnd.ms-excel" ;;
.xlsx) mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ;;
.xml) mimeType="application/xml" ;;
.zip) mimeType="application/zip" ;;
.7z) mimeType="application/x-7z-compressed" ;;
.directory) mimeType="inode/directory" ;;
.drive) mimeType="inode/directory" ;;
.folder) mimeType="inode/directory" ;;
*)
zenity --error --text="Geçersiz dosya uzantısı."
exit 1
;;
esac
# Varsayılan uygulamayı sıfırlama
# Kullanıcıdan varsayılan uygulama adını al
appName=$(zenity --entry --title="Varsayılan Uygulama Seçimi" --text="Varsayılan uygulama adını girin (örneğin: gedit.desktop):")
# Varsayılan uygulamayı sıfırlama işlemi
if [[ -n "$appName" ]]; then
xdg-mime default "$appName" "$mimeType"
zenity --info --text="$fileExtension uzantısı için varsayılan uygulama sıfırlandı."
else
zenity --error --text="Varsayılan uygulama adı girilmedi. İşlem iptal edildi."
exit 1
fi
Oluşturulan bash shell betiğinin çalıştırılması

Kullanıcı herhangi bir dosya uzantısının varsayılan ayarını değiştirmek birinci kutucuğa uzantı adını yazar[center]

Ardından sıfırladığı dosya uzantısının varsayılan uygulamanın .desktop dosyasını ikinci kutucuğa yazması

