Nautilus ile iki dosyayı nasıl “farklılaştırabilirim”?


16

Meld'i yükledim ve bunun harika bir karşılaştırma aracı olduğunu öğrendim. Ne yazık ki Nautilus 3.2 ile entegrasyon yoktur. Yani, dosyaları sağ tıklayamıyorum ve karşılaştırma için Meld'de açmak için bir seçenek seçemiyorum.

Araçlar yorumunda aracın yüklenebilmesi için diff-ext paketine ihtiyaç duyduğunu gördüm . Bu paket Ubuntu evreninden kaldırıldı, sanırım gtk 3.0. Kaynaktan manuel olarak indirmiş olsam bile diff-ext paketini taklit etsem , yapılandırmaya çalıştığımda kontrol iletiyle başarısız oluyor:

checking for DIFF_EXT... configure: error: Package requirements (libnautilus-extension >= 2.14.0 gconf-2.0 >= 2.14.0 gnome-vfs-module-2.0 >= 2.14) were not met:

No package 'libnautilus-extension' found
No package 'gconf-2.0' found
No package 'gnome-vfs-module-2.0' found

Tamam, bu çıkıştan fark uzantısını nautilus'a yüklemek için gerçekten gtk 2'nin gerekli olduğunu topluyorum.

Şimdi sorum şu: Meld'i Nautilus'a entegre etme imkanı var mı? Ya da mevcut Nautilus ile entegre olan başka dif tabanlı bir araç var mı? Yani gtk3 tabanlı.

Şimdiye kadar herhangi bir şüphe varsa Ubuntu 11.10 kullanıyorum.

Yanıtlar:


20

Meld'i Nautilus'a dahil eden kullanışlı bir python uzantısı var

resim açıklamasını buraya girin

resim açıklamasını buraya girin

nasıl kurulur

Kaynak veya deb paketini yazarların web sitesinden edinin .

wget http://www.giuspen.com/software/nautilus-pyextensions_3.4.1-1_all.deb

sudo apt-get install python-nautilus
sudo dpkg -i nautilus-pyextensions_3.4.1-1_all.deb

Dash'de pyextension arayın ve Nautilus PyExtension'ı çalıştırın .

Kaynak uzantısını etkinleştirin (istenirse kurun) ve Nautilus araç çubuğunu yeniden başlat seçeneğini tıklayın.

GConf hatası

Nautilus PyExtension'ı açmaya çalışırken GConf ile ilgili bir hata bulursanız, "gobject-introspection" ve "gir1.2-gconf-2.0" sürümünü yükleyin:

sudo apt-get install gobject-introspection
sudo apt-get install gir1.2-gconf-2.0

Teşekkür ederim, bu iş harika. Ayrıca, ekran görüntüsü almak ve hızlı kurulum açıklamasını yapmak için zaman ayırdığınız için teşekkür ederiz. Sizden cevap almak her zaman iyidir.
bioShark

meldsuper-duper harika. Mükemmel entegrasyon ipucu.
belacqua

11

Standart Ubuntu paket depolarından mevcut olan (Ubuntu 12.04 ile başlayan) nautilus-karşılaştırma paketini de kurabilirsiniz - aşağıdakileri bir terminalden çalıştırın:

sudo apt-get install nautilus-compare

Bu, 2 yönlü ve 3 yönlü karşılaştırmalar için nautilus menü seçenekleri sunar. Meld varsayılan olarak kullanılır, ancak kullanıcı tanımlı herhangi bir fark uygulaması kullanılabilir.

Bu çözümün önemli bir avantajı tek dosyaları veya farklı dizinlerde bulunan klasörleri karşılaştırabilirsiniz (örneğin olmasıdır /home/user/a/b/c/file.txtve /home/user/d/e/f/otherfile.txtbirbirlerine karşı farklı Nautilus pencerelerde açıldı ve karşılaştırılabilir).


3

Nautilus alfabesi

Özel bir uzantı yüklemek için daha kolay ve daha verimli bir alternatif, aşağıdaki gibi bir Nautilus komut dosyası kullanmak olacaktır:

#!/bin/bash
meld "$@"

Yükleme yönergeleri: Nautilus betiğini nasıl yükleyebilirim?


Bu kolayca en iyi çözümdür. Diğer pkgs'lerin ve ilgili yüklerin kurulumunu önler. Teşekkürler @Glutanimate.
u2n

2

Dosyayı metin içeren panoya karşılaştırmak için Nautilus kullanma

Bu yanıt, öncelikle bir dosyayı internetteki kopyalanan panodaki metinle karşılaştırmak için kullanılır. Pano metni, sisteminizdeki başka bir dosyadan kopyalanmış olabilir - bu, uygun bir yanıt haline gelir.

Dosya farklılıkları bash'ın yerel diffkomutu kullanılarak vurgulanır ve ardından görüntülenir gedit. Bu, meldherhangi bir üçüncü taraf paketine veya herhangi bir üçüncü taraf paketine değiştirilebilir .

Bu yanıt, bir dosya seçtikten sonra özel bir komut dosyası çalıştırmak için Nautilus'un yerleşik işlevini kullanır:

#!/bin/bash

# NAME: clipboard-diff
# PATH: $HOME/.local/share/nautilus/scripts
# DESC: Find differences bewteen selected file on disk and clipboard.
# CALL: Called from Nautilus file manager.
# DATE: March 18, 2017. Modified: March 31, 2017.

# NOTE: The clipboard would contain text highlighted on website and copied
#       with <ctrl>+<C>. Requires command `xclip` to be installed.

# Must have the xclip package. On Ubuntu 16.04, not installed by default
command -v xclip >/dev/null 2>&1 || { zenity --error --text "Install xclip using: 'sudo apt install xclip' to use this script.  Aborting."; exit 99; }

# strip new line char passed by Nautilus
FILENAME=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | sed -e 's/\r//g')

# Multiple files can't be selected.
LINE_COUNT=$(wc -l <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
LINE_COUNT=$((LINE_COUNT-1))

if [[ $LINE_COUNT > 1 ]] ; then
    zenity --error --text "Ony one file can be selected at a time! "
    exit 1
fi

# Object type must be "file..." (ie no directories, etc.)
if [ -d "${FILENAME}" ] ; then
    zenity --error --text "$FILENAME is a directory!";
    exit 1
else
    if [ -f "${FILENAME}" ]; then
        : # Bash noop
    else
        zenity --error --text "${FILENAME} is not a file!";
        exit 2
    fi
fi

# Get clipboard contents into working file
workfile="/tmp/clipboard-work-"$(date +%s)
xclip -o > $workfile

# Create temporary file name so two or more open instances won't clash
differences="/tmp/clipboard-diff-"$(date +%s)

# Compare file differences
# -q brief -B ignore blank lines, -u only differences
diff --unified=2 -w -b -B -I --suppress-blank-empty \
        --suppress-common-lines --ignore-all-space \
        ${FILENAME} $workfile > $differences

# If file doesn't exist, errors in diff parameters
# If file size =0 there were no differences
if [[ -f $differences ]] ; then
    if [[ -s $differences ]] ; then
        # File not empty.
        gedit $differences
    else    
        zenity --info --text "$workfile matches $differences"
    fi
else
    zenity --error --text "cliboard-diff - error in diff parameters."
fi

# clean up /tmp directory
rm $workfile
rm $differences

exit 0

NOT: Bu Nautilus senaryosunu birkaç hafta önce geliştirdim ve yeni bir Soru-Cevap olarak yayınlamak için anlam ifade ettim, ancak zamana karşı basıldım ve gerçekten onunla ilgilenen herkesin emin olup olmayacağından emin değildim.

Örnek çıktı

pano fark 1

Bu örnekte, AU'da 31 Mart 2017'den önce yayınlanan gerçek komut dosyasını 31 Mart 2017'de revize edilen sürümle karşılaştırıyoruz. Yeni bilgi ve hata mesajlarının nasıl kurulduğuna dikkat edin.

diffKomut çok güçlüdür ve bu şekilde kontrol parametrelerinin sayısız vardır. Tip man diffmanuel sayfaları için veya terminalde info diffdaha da fazla komut kullanım detayları için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.