Pardus güncel sürüm, XFCE kullanıyorum.
Az evvel bir dosyayı sağtık>rar yapacaktım ki rar’ın listeden kaybolduğunu farkettim.
Güncellemelerden sonra olmuş olabilir.
Tekrar geri getirmem lazım, bu özellik bana lazım.
Pardus güncel sürüm, XFCE kullanıyorum.
Az evvel bir dosyayı sağtık>rar yapacaktım ki rar’ın listeden kaybolduğunu farkettim.
Güncellemelerden sonra olmuş olabilir.
Tekrar geri getirmem lazım, bu özellik bana lazım.
ÇÖZÜM:
Sağtık menüsüne “Rar ile sıkıştır” fonksiyonu ekleyebiliriz.
Terminali açın. Şu komutu girip entırlayın:
mousepad ~/bin/thunar_rar_compress.sh
Açılan boş dosyaya aşağıdaki kodun tamamını yapılştırın:
#!/bin/bash
# Bu betik Thunar Özel Eylemi tarafından çağrılır.
# Seçilen dosyayı/klasörü RAR formatında sıkıştırır ve başlangıçta bir bekleme mesajı gösterir.
LOG_FILE="/tmp/rar_debug_$(date +%Y%m%d%H%M%S).log"
# Tüm çıktıları (stdout ve stderr) bu log dosyasına yönlendir.
exec > "$LOG_FILE" 2>&1
# Başlangıçta kullanıcıya bir "Lütfen bekleyin..." mesajı göster
notify-send "RAR Sıkıştırma Başladı" "Sıkıştırıyor, bekleyin..."
echo "--- RAR Sıkıştırma Hata Ayıklama Başlangıcı ---"
echo "Çalışma Dizini (PWD - Betik Başlangıcı): $(pwd)"
echo "Thunar %f değişkeni (Seçilen ilk dosya/dizin yolu): '$1'"
echo "Tüm argümanlar (Thunar %F'den): '$@'"
echo "Argüman Sayısı: $#"
if [ "$#" -eq 0 ]; then
echo "HATA: Sıkıştırılacak hiçbir öğe seçilmedi."
notify-send "RAR Hatası" "Sıkıştırılacak hiçbir öğe seçilmedi!"
exit 1
fi
# İlk argümanın (seçilen ilk dosya/klasörün) dizinini bul
TARGET_DIR=$(dirname "$1")
echo "Hedef Dizin (TARGET_DIR): '$TARGET_DIR'"
# Hedef dizine geçiş yap
cd "$TARGET_DIR" || { echo "HATA: Dizin değiştirilemedi: $TARGET_DIR"; notify-send "RAR Hatası" "Hedef dizine geçilemedi!"; exit 1; }
echo "Yeni Çalışma Dizini (PWD - cd sonrası): $(pwd)"
# Sıkıştırılacak dosyaların/klasörlerin sadece isimlerini içeren bir liste oluştur
COMPRESS_ITEMS=()
for item_path in "$@"; do
COMPRESS_ITEMS+=("$(basename "$item_path")")
done
echo "Sıkıştırılacak Öğeler (COMPRESS_ITEMS): ${COMPRESS_ITEMS[*]}"
# RAR hedef dosya adını oluştur
FIRST_ITEM_BASENAME=$(basename "$1" | sed "s/^['\"]*//;s/['\"]*$//;s/\.[^.]*$//")
RAR_TARGET_NAME="${FIRST_ITEM_BASENAME}.rar"
echo "Oluşturulacak RAR Dosya Adı (RAR_TARGET_NAME): '$RAR_TARGET_NAME'"
# RAR komutunu çalıştırma
# -m5: Maksimum sıkıştırma
# -ep: Arşive tam yolları değil, sadece dosya/klasör isimlerini ekler (gereksiz home/kullanici/ yollarını engeller).
rar a -m5 -ep "$RAR_TARGET_NAME" "${COMPRESS_ITEMS[@]}"
RAR_EXIT_STATUS=$?
echo "RAR Komutu Çıkış Durumu: $RAR_EXIT_STATUS"
if [ $RAR_EXIT_STATUS -ne 0 ]; then
echo "HATA: RAR komutu başarısız oldu (Çıkış Kodu: $RAR_EXIT_STATUS)"
notify-send "RAR Sıkıştırma Hatası" "Sıkıştırma işlemi başarısız oldu. Detaylar için log dosyası: $LOG_FILE"
else
notify-send "RAR Sıkıştırma Başarılı" "Dosyalar başarıyla sıkıştırıldı: $RAR_TARGET_NAME"
fi
echo "--- RAR Sıkıştırma Hata Ayıklama Sonu ---"
Kaydedip çıkın.
Bu betiği çalıştırılabilir yapın:
chmod +x ~/bin/thunar_rar_compress.sh
Thunar dosya yöneticisini açın, Düzenle menüsünden Özel Eylemleri Yapılandır’a gelin.
“artı” düğmesiyle yeni bir fonksiyon penceresi açın ve şunları doldurun:
Ad: Rar ile sıkıştır
Tanım: Seçilen dosya veya klasörleri RAR arşivine sıkıştırır (maksimum sıkıştırma)
Komut: ~/bin/thunar_rar_compress.sh %F
Tamam diyerek çıkın.
Test edin. Masaüstünde ve klasörlerde, tek bir klasör, tek bir dosya; birden fazla klasör ve dosya karışık olacak şekilde sıkıştırma testleri yapın.
Bu kadar.