web-dev-qa-db-fra.com

Comment puis-je "diff" deux fichiers avec Nautilus?

J'ai installé Meld et j'ai découvert que c'était un excellent outil de comparaison. Malheureusement, il n'y a pas d'intégration avec Nautilus 3.2. Cela signifie que je ne peux pas cliquer avec le bouton droit sur les fichiers et sélectionner une option pour les ouvrir dans Meld à des fins de comparaison.

J'ai vu dans le commentaire sur les outils que l'outil doit installer le package diff-ext. Ce paquet a été supprimé de l'univers Ubuntu, je suppose, car gtk 3.0. Même si j'ai téléchargé manuellement à partir de la source forger le paquet diff-ext, lorsque j'essaie de le configurer, la vérification échoue avec le message suivant:

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, donc à partir de cette sortie, je suppose qu’en effet, GTK 2 est sur le point d’installer l’extension diff de Nautilus.

Ma question est la suivante: existe-t-il une possibilité d’intégrer Meld dans Nautilus? Ou bien, existe-t-il un autre outil basé sur les différences qui s’intègre au Nautilus actuel? Donc, basé sur gtk3.

J'utilise Ubuntu 11.10 s'il y avait un doute jusqu'à présent.

16
bioShark

Il y a une extension utile python qui incorpore Meld dans Nautilus

enter image description here

enter image description here

comment installer

Obtenez le paquet source ou le paquet deb à partir du site Web des auteurs .

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

Recherchez pyextension dans Dash et exécutez Nautilus PyExtension .

Activez l’extension meld (installez-la si nécessaire) et cliquez sur l’option de redémarrage de la barre d’outils Nautilus.

erreur GConf

Si vous rencontrez une erreur liée à GConf lorsque vous essayez d'ouvrir Nautilus PyExtension, installez "gobject-introspection" et "gir1.2-gconf-2.0":

Sudo apt-get install gobject-introspection
Sudo apt-get install gir1.2-gconf-2.0
20
fossfreedom

Vous pouvez également installer le paquet nautilus-compare, disponible (à partir de Ubuntu 12.04) à partir des référentiels de paquets Ubuntu standard - exécutez ce qui suit à partir d'un terminal:

Sudo apt-get install nautilus-compare

Ceci fournit des options de menu Nautile pour des comparaisons à 2 et 3 voies. La fusion est utilisée par défaut, mais toute application de diff définie par l'utilisateur peut être utilisée.

Un avantage important de cette solution est que l’on peut comparer des fichiers ou des dossiers situés dans différents répertoires (par exemple, /home/user/a/b/c/file.txt et /home/user/d/e/f/otherfile.txt peuvent être ouverts dans différentes fenêtres de Nautilus et comparés les uns aux autres).

11
Mark

Script Nautilus

Une alternative plus simple et plus efficace à l'installation d'une extension dédiée serait d'utiliser un script Nautilus comme celui-ci:

#!/bin/bash
meld "$@"

Instructions d'installation: Comment puis-je installer un script Nautilus?

3
Glutanimate

Utiliser Nautilus pour comparer un fichier à un presse-papier contenant du texte

Cette réponse est principalement utilisée pour comparer un fichier au texte du presse-papiers copié à partir d'Internet. Le texte du presse-papier aurait pu être copié à partir d'un autre fichier de votre système, ce qui en ferait une réponse éligible.

Les différences de fichier sont mises en évidence à l'aide de la commande native diff de bash, puis affichées à l'aide de gedit. Cela peut être modifié pour meld ou tout autre paquet tiers.

Cette réponse utilise la fonction intégrée de Nautilus pour exécuter un script personnalisé après la sélection d'un fichier:

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

REMARQUE: J'ai développé ce script Nautilus il y a quelques semaines et je voulais le poster en tant que nouveau Q & R, mais j'ai été pressé par le temps et je ne savais pas si n'importe qui serait vraiment intéressé à cela.

Échantillon de sortie

clipboard-diff 1

Dans cet exemple, nous comparons le script réel posté ici dans AU avant le 31 mars 2017 à la version révisée le 31 mars 2017. Notez comment les nouvelles informations et les messages d'erreur ont été configurés.

La commande diff est très puissante et possède une myriade de paramètres de contrôle. Tapez man diff dans le terminal pour les pages de manuel ou info diff pour plus de détails sur l'utilisation des commandes.

2
WinEunuuchs2Unix