Làm thế nào tôi có thể khác diff hai tập tin với Nautilus?


16

Tôi đã cài đặt Meld và phát hiện ra nó là một công cụ so sánh tuyệt vời. Thật không may, không có tích hợp với Nautilus 3.2. Điều này có nghĩa là, tôi không thể nhấp chuột phải vào các tệp và chọn một tùy chọn để mở chúng trong Meld để so sánh.

Tôi đã thấy trong các công cụ nhận xét rằng công cụ cần gói diff-ext được cài đặt. Gói này đã bị xóa khỏi vũ trụ Ubuntu, tôi đoán vì gtk 3.0. Ngay cả khi tôi đã tải xuống thủ công từ nguồn giả mạo gói diff-ext , khi tôi cố gắng định cấu hình, việc kiểm tra sẽ thất bại với thông báo:

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, vì vậy từ đầu ra này, tôi thu thập được rằng gtk 2 thực sự đang được yêu cầu cài đặt phần mở rộng khác cho nautilus.

Bây giờ, câu hỏi của tôi là: Có khả năng tích hợp Meld vào Nautilus không? Hoặc, có công cụ dựa trên diff nào khác tích hợp với Nautilus hiện tại không? Vì vậy, dựa trên gtk3.

Tôi đang sử dụng Ubuntu 11.10 nếu có bất kỳ nghi ngờ nào cho đến nay.

Câu trả lời:


20

Có một phần mở rộng python hữu ích kết hợp Meld vào Nautilus

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Cài đặt thế nào

Lấy nguồn hoặc gói deb từ trang web của tác giả .

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

Tìm kiếm pyextension trong Dash và chạy Nautilus PyExtension .

Kích hoạt tiện ích mở rộng (cài đặt nếu được yêu cầu) và nhấp vào tùy chọn khởi động lại thanh công cụ Nautilus.

Lỗi GConf

Trong trường hợp bạn tìm thấy lỗi liên quan đến GConf khi thử mở Nautilus PyExtension, hãy cài đặt "gobject-introspection" và "gir1.2-gconf-2.0":

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

Cảm ơn bạn, công việc này tuyệt vời. Ngoài ra, cảm ơn bạn đã dành thời gian để thực hiện các ảnh chụp màn hình và thực hiện mô tả cài đặt nhanh. Luôn luôn tốt để có được câu trả lời từ bạn.
bioShark

meldlà siêu lừa đảo tuyệt vời. Mẹo tích hợp tuyệt vời.
belacqua

11

Bạn cũng có thể cài đặt gói so sánh nautilus, có sẵn (bắt đầu với Ubuntu 12.04) từ kho lưu trữ gói Ubuntu tiêu chuẩn - chạy phần sau từ thiết bị đầu cuối:

sudo apt-get install nautilus-compare

Điều này cung cấp các tùy chọn menu nautilus để so sánh 2 chiều và 3 chiều. Meld được sử dụng theo mặc định, nhưng bất kỳ ứng dụng khác do người dùng định nghĩa đều có thể được sử dụng.

Một lợi thế đáng kể của giải pháp này là người ta có thể so sánh các tệp hoặc thư mục nằm trong các thư mục khác nhau (ví dụ /home/user/a/b/c/file.txt/home/user/d/e/f/otherfile.txtcó thể được mở trong các cửa sổ Nautilus khác nhau và so sánh với nhau).


3

Kịch bản Nautilus

Một cách khác dễ dàng và hiệu quả hơn để cài đặt tiện ích mở rộng chuyên dụng sẽ là sử dụng tập lệnh Nautilus như sau:

#!/bin/bash
meld "$@"

Hướng dẫn cài đặt: Làm cách nào tôi có thể cài đặt tập lệnh Nautilus?


Đây dễ dàng là giải pháp tốt nhất. Nó tránh cài đặt các pkgs khác và chi phí liên quan. Cảm ơn, @Glutimate.
u2n

2

Sử dụng Nautilus để so sánh tệp với bảng tạm chứa văn bản

Câu trả lời này chủ yếu được sử dụng để so sánh một tập tin với văn bản trong bảng tạm được sao chép từ internet. Văn bản clipboard có thể đã được sao chép từ một tệp khác trên hệ thống của bạn - làm cho đây là một câu trả lời đủ điều kiện.

Sự khác biệt của tệp được tô sáng bằng difflệnh gốc của bash và sau đó được hiển thị bằng gedit. Điều này có thể được sửa đổi thành meldhoặc bất kỳ gói bên thứ ba nào khác.

Câu trả lời này sử dụng chức năng tích hợp của Nautilus để chạy tập lệnh tùy chỉnh sau khi chọn tệp:

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

LƯU Ý: Tôi đã phát triển tập lệnh Nautilus này một vài tuần trước và có ý định đăng nó dưới dạng Hỏi & Đáp mới nhưng đã bị ép thời gian và không chắc chắn liệu có ai thực sự quan tâm đến nó không.

Sản lượng mẫu

clipboard-diff 1

Trong ví dụ này, chúng tôi so sánh tập lệnh thực tế được đăng ở đây trong AU trước ngày 31 tháng 3 năm 2017 với phiên bản được sửa đổi vào ngày 31 tháng 3 năm 2017. Lưu ý cách thông tin mới và thông báo lỗi được thiết lập.

Các difflệnh là rất mạnh mẽ và như vậy có vô số các thông số kiểm soát. Nhập man diffvào thiết bị đầu cuối cho các trang thủ công hoặc info diffđể biết thêm chi tiết sử dụng lệnh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.