Nautilus ile iki dosyayı nasıl “dağıtabilirim?”

16

Meld'yi kurdum ve harika bir karşılaştırma aracı olduğunu öğrendim. Maalesef Nautilus 3.2 ile entegrasyon yoktur. Bu, dosyalara sağ tıklayıp karşılaştırma yapmak için Meld'de açmak için bir seçenek seçemiyorum.

Araçlarda gördüğüm, aracın yüklenecek diff-ext paketine gereksinim duyduğunu belirttim. Bu paket Ubuntu evreninden kaldırıldı, çünkü gtk 3.0. Kaynaktan el ile diff-ext paketi oluşturulsa bile, onu yapılandırmaya çalıştığımda, ileti şu iletiyle başarısız olur:

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 yüzden bu çıkıştan aldım ki aslında 2 nolu dif uzantısını nautilus'a kurmak gerekiyor.

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

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

    
sordu bioShark 11.03.2012 23:11

4 cevap

20

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

Nasıl yüklenir

Kaynağı veya borç 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

Tire'de pyextension için arama yapın ve Nautilus PyExtension komutunu çalıştırın.

Eklenti uzantısını etkinleştirin (istendiğinde yükleyin) 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" ı yükleyin:

sudo apt-get install gobject-introspection
sudo apt-get install gir1.2-gconf-2.0
    
verilen cevap fossfreedom 12.03.2012 00:18
11

Ayrıca, standart Ubuntu paket depolarından Ubuntu 12.04'ten başlayarak mevcut olan nautilus-karşılaştırılabilir paketini de kurabilirsiniz: Bir terminalden aşağıdakileri çalıştırın:

sudo apt-get install nautilus-compare

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

Bu çözümün önemli bir avantajı, farklı dizinlerde bulunan dosya veya klasörleri karşılaştırabilmesidir (örn. /home/user/a/b/c/file.txt ve /home/user/d/e/f/otherfile.txt farklı Nautilus pencerelerinde açılabilir ve birbirleriyle karşılaştırılabilir).

    
verilen cevap Mark 31.10.2012 17:59
3

Nautilus komut dizisi

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

#!/bin/bash
meld "[email protected]"

Yükleme talimatları: Bir Nautilus komut dosyasını nasıl kurabilirim?

    
verilen cevap Glutanimate 18.09.2013 15:06
2

Dosyayı metin içeren panoya göre karşılaştırmak için Nautilus'u kullanma

Bu cevap öncelikle bir dosyayı internetten kopyalanan panodaki metni karşılaştırmak için kullanılır. Pano metni, sisteminizdeki başka bir dosyadan kopyalanmış olabilir. Bu, uygun bir yanıttır.

Dosya farklılıkları, bash yerel diff komutu kullanılarak vurgulanır ve sonra gedit kullanılarak görüntülenir. Bu, meld veya başka bir üçüncü taraf paketine dönüştürülebilir.

Bu cevap, bir dosya seçtikten sonra özel bir komut dosyasını ç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 komut dosyasını birkaç hafta önce geliştirdim ve bunu yeni bir Q & A olarak yayınlamak istedim, ancak zaman için bastım ve herkes gerçekten bu kadar iyi olacaksa emin değildi. ilgilenen.

Örnek çıktı

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

diff komutu çok güçlüdür ve sayısız kontrol parametresi vardır. Manuel sayfalar için terminalde man diff veya daha fazla komut kullanımı için info diff yazın.

    
verilen cevap WinEunuuchs2Unix 25.03.2017 19:27

Etiketlerdeki diğer soruları oku