Bagaimana saya bisa "membedakan" dua file dengan Nautilus?

16

Saya telah menginstal Meld dan menemukan itu adalah alat pembanding yang hebat. Sayangnya tidak ada integrasi dengan Nautilus 3.2. Ini berarti, saya tidak dapat mengklik kanan pada file dan memilih opsi untuk membukanya di Meld untuk perbandingan.

Saya telah melihat di komentar alat bahwa alat membutuhkan paket diff-ext untuk diinstal. Paket ini telah dihapus dari alam semesta Ubuntu, saya menduga karena gtk 3.0. Bahkan jika saya mengunduh secara manual dari sumber, bikin paket diff-ext , ketika saya mencoba mengkonfigurasinya, cek gagal dengan pesan:

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

Ok, jadi dari output ini saya kumpulkan bahwa memang gtk 2 diperlukan untuk menginstal ekstensi diff ke nautilus.

Sekarang, pertanyaan saya adalah: Apakah ada kemungkinan untuk mengintegrasikan Meld ke Nautilus? Atau, apakah ada alat berbasis diff lain yang terintegrasi dengan Nautilus saat ini? Jadi gtk3 berbasis.

Saya menggunakan Ubuntu 11.10 jika ada keraguan sejauh ini.

bioShark
sumber

Jawaban:

20

Ada ekstensi python yang berguna yang menggabungkan Meld ke Nautilus

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Bagaimana cara meng-install

Dapatkan sumber atau paket deb dari situs web penulis .

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

Pencarian untuk pyextension di Dash dan jalankan Nautilus PyExtension .

Aktifkan ekstensi berbaur (instal jika diminta) dan klik opsi mulai ulang bilah alat Nautilus.

Kesalahan GConf

Jika Anda menemukan kesalahan terkait GConf ketika mencoba membuka Nautilus PyExtension, instal "gobject-introspection" dan "gir1.2-gconf-2.0":

sudo apt-get install gobject-introspection
sudo apt-get install gir1.2-gconf-2.0
kebebasan fosil
sumber
Terima kasih, ini sangat bagus. Plus, terima kasih telah meluangkan waktu untuk membuat screenshot dan membuat deskripsi pemasangan cepat. Selalu bagus untuk mendapat jawaban dari Anda.
bioShark
meldsuper-duper luar biasa. Kiat integrasi yang hebat.
belacqua
11

Anda juga dapat menginstal paket perbandingan nautilus, tersedia (dimulai dengan Ubuntu 12.04) dari repositori paket standar Ubuntu - jalankan yang berikut dari terminal:

sudo apt-get install nautilus-compare

Ini menyediakan opsi menu nautilus untuk perbandingan 2 arah dan 3 arah. Meld digunakan secara default, tetapi aplikasi diff yang ditentukan pengguna dapat digunakan.

Keuntungan yang signifikan dari solusi ini adalah bahwa seseorang dapat membandingkan file atau folder yang terletak di direktori yang berbeda (misalnya /home/user/a/b/c/file.txtdan /home/user/d/e/f/otherfile.txtdapat dibuka di jendela Nautilus yang berbeda, dan dibandingkan satu sama lain).

Menandai
sumber
3

Skrip Nautilus

Alternatif yang lebih mudah dan lebih efisien untuk menginstal ekstensi khusus akan menggunakan skrip Nautilus seperti yang berikut:

#!/bin/bash
meld "$@"

Petunjuk instalasi: Bagaimana saya bisa menginstal skrip Nautilus?

Glutanimate
sumber
Ini dengan mudah solusi terbaik. Ini menghindari pemasangan pkgs lain dan overhead terkait. Terima kasih, @Glutanimate.
u2n
2

Menggunakan Nautilus untuk membandingkan file ke clipboard yang berisi teks

Jawaban ini terutama digunakan untuk membandingkan file dengan teks di clipboard yang disalin dari internet. Teks clipboard bisa saja disalin dari file lain di sistem Anda - menjadikan ini jawaban yang memenuhi syarat.

Perbedaan file disorot menggunakan diffperintah asli bash dan kemudian ditampilkan menggunakan gedit. Ini dapat dimodifikasi untuk meldatau paket pihak ketiga lainnya.

Jawaban ini menggunakan fungsi bawaan Nautilus untuk menjalankan skrip khusus setelah memilih file:

#!/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

CATATAN: Saya mengembangkan skrip Nautilus ini beberapa minggu yang lalu dan bermaksud mempostingnya sebagai T&J baru tetapi ditekan untuk waktu dan tidak yakin apakah ada orang yang benar-benar tertarik dengan skrip ini.

Output sampel

clipboard-diff 1

Dalam contoh ini kami membandingkan skrip aktual yang diposting di sini di AU sebelum 31 Maret 2017 dengan versi yang direvisi pada 31 Maret 2017. Perhatikan bagaimana informasi baru dan pesan kesalahan dibuat.

The diffperintah sangat kuat dan karena itu memiliki segudang parameter kontrol. Ketik man diffterminal untuk halaman manual atau info diffuntuk lebih detail penggunaan perintah.

WinEunuuchs2Unix
sumber