Когда-то тоже задавался вопросом сравнения файлов и набрёл на скрипт для Наутилуса. Будет ли он работать в Мажее я не знаю, т.к. до сих пор пользую Мандриву 2010.2.
Описание (взято с сохранённой страницы):
#!/bin/bash
#----------------------------------------------------------------------
# Calculate MD5 (Files and Directories) - Nautilus Script
#----------------------------------------------------------------------
# License agreement (GPL) can be found at the end of this file
#----------------------------------------------------------------------
# Author: Ofir Klinger ([url]http://violetech.googlepages.com/[/url])
# Original author: Christopher Bratusek ([url]http://www.nanolx.org/[/url])
#----------------------------------------------------------------------
# Version 2.0.20071115
#----------------------------------------------------------------------
# Define NEWLINE as the delimiter...
IFS='
';
# List all files
files=();
count=0;
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS;
do
files[$count]=$file;
count=$(($count+1));
done
filesCount=${#files[*]};
if [ $filesCount == 1 ] ; then
if [[ -d "$file" ]]; then
Sumname=$(echo ${files[0]} | sed -e 's/.*\///g');
totalFiles=$(find $file -type f | wc -l)
count=0;
(for innerFile in `find $file`; do
if [[ -f "$innerFile" ]]; then
md5sum "$innerFile" >> "$Sumname.md5"
count=$(($count+1));
newPercentage=$(($(($count*100))/$totalFiles));
if [ "$newPercentage" \> "$percentage" ]; then
echo $newPercentage;
percentage=$newPercentage;
fi;
fi;
done) | zenity --progress --title "Calculate MD5 (Files and Directories)" --text "Making: $Sumname.md5" --auto-close;
else
# Ask which way the user wants the MD5 to be presented...
choice=`zenity --list --title "Calculate MD5 (Files and Directories)" --radiolist TRUE "Display on screen" FALSE "Save to file (the selected filename + .md5 extenion)" --column= --column=Handling --text="Please choose the way you want the MD5 hash to be presented:\n($filesCount file(s) selected)"`
filename=$(echo ${files[0]} | sed -e 's/.*\///g');
if [ "$choice" == "Save to file (the selected filename + .md5 extenion)" ] ; then
(md5sum "${files[0]}" > "$filename.md5") 2>&1 | zenity --progress --title "Make md5" --text "Making: $filename.md5" --pulsate --auto-close;
elif [ "$choice" == "Display on screen" ] ; then
md5Hash=`md5sum "$file"`;
zenity --entry --title "Calculate MD5 (Files and Directories)" --text="The MD5 hash of the selected file:" --entry-text="$md5Hash";
else
echo ""
fi
fi
else
count=0;
Sumname="md5Results";
(for file in "${files[@]}"; do
if [[ -d "$file" ]]; then
for innerFile in `find $file`; do
if [[ -f "$innerFile" ]]; then
md5sum "$innerFile" >> "$Sumname.md5"
fi;
done;
else
md5sum "$file" >> "$Sumname.md5"
fi
count=$(($count+1));
echo $(($(($count*100))/$filesCount));
done) | zenity --progress --title "Calculate MD5 (Files and Directories)" --text "Making: $Sumname.md5" --auto-close;
fi
#----------------------------------------------------------------------
# License Agreement
#----------------------------------------------------------------------
#(C) 2002-2003, Ofir Klinger
#
# This program is distributed under the terms of the GPL v2.
#
# GNU GENERAL PUBLIC LICENSE
# Version 2, June 1991
#
# Copyright (C) 1989, 1991 Free Software Foundation, Inc.
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
# Everyone is permitted to copy and distribute verbatim copies
# of this license document, but changing it is not allowed.
#
# Preamble
#
# The licenses for most software are designed to take away your
# freedom to share and change it. By contrast, the GNU General Public
# License is intended to guarantee your freedom to share and change free
# software--to make sure the software is free for all its users. This
# General Public License applies to most of the Free Software
# Foundation's software and to any other program whose authors commit to
# using it. (Some other Free Software Foundation software is covered by
# the GNU Library General Public License instead.) You can apply it to
# your programs, too.
#
# When we speak of free software, we are referring to freedom, not
# price. Our General Public Licenses are designed to make sure that you
# have the freedom to distribute copies of free software (and charge for
# this service if you wish), that you receive source code or can get it
# if you want it, that you can change the software or use pieces of it
# in new free programs; and that you know you can do these things.
#
# To protect your rights, we need to make restrictions that forbid
# anyone to deny you these rights or to ask you to surrender the rights.
# These restrictions translate to certain responsibilities for you if you
# distribute copies of the software, or if you modify it.
#
# For example, if you distribute copies of such a program, whether
# gratis or for a fee, you must give the recipients all the rights that
# you have. You must make sure that they, too, receive or can get the
# source code. And you must show them these terms so they know their
# rights.
#
# We protect your rights with two steps: (1) copyright the software, and
# (2) offer you this license which gives you legal permission to copy,
# distribute and/or modify the software.
#
# Also, for each author's protection and ours, we want to make certain
# that everyone understands that there is no warranty for this free
# software. If the software is modified by someone else and passed on, we
# want its recipients to know that what they have is not the original, so
# that any problems introduced by others will not reflect on the original
# authors' reputations.
#
# Finally, any free program is threatened constantly by software
# patents. We wish to avoid the danger that redistributors of a free
# program will individually obtain patent licenses, in effect making the
# program proprietary. To prevent this, we have made it clear that any
# patent must be licensed for everyone's free use or not licensed at all.
#
# The precise terms and conditions for copying, distribution and
# modification follow.
#
# GNU GENERAL PUBLIC LICENSE
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
#
# 0. This License applies to any program or other work which contains
# a notice placed by the copyright holder saying it may be distributed
# under the terms of this General Public License. The "Program", below,
# refers to any such program or work, and a "work based on the Program"
# means either the Program or any derivative work under copyright law:
# that is to say, a work containing the Program or a portion of it,
# either verbatim or with modifications and/or translated into another
# language. (Hereinafter, translation is included without limitation in
# the term "modification".) Each licensee is addressed as "you".
#
# Activities other than copying, distribution and modification are not
# covered by this License; they are outside its scope. The act of
# running the Program is not restricted, and the output from the Program
# is covered only if its contents constitute a work based on the
# Program (independent of having been made by running the Program).
# Whether that is true depends on what the Program does.
#
# 1. You may copy and distribute verbatim copies of the Program's
# source code as you receive it, in any medium, provided that you
# conspicuously and appropriately publish on each copy an appropriate
# copyright notice and disclaimer of warranty; keep intact all the
# notices that refer to this License and to the absence of any warranty;
# and give any other recipients of the Program a copy of this License
# along with the Program.
#
# You may charge a fee for the physical act of transferring a copy, and
# you may at your option offer warranty protection in exchange for a fee.
#
# 2. You may modify your copy or copies of the Program or any portion
# of it, thus forming a work based on the Program, and copy and
# distribute such modifications or work under the terms of Section 1
# above, provided that you also meet all of these conditions:
#
# a) You must cause the modified files to carry prominent notices
# stating that you changed the files and the date of any change.
#
# b) You must cause any work that you distribute or publish, that in
# whole or in part contains or is derived from the Program or any
# part thereof, to be licensed as a whole at no charge to all third
# parties under the terms of this License.
#
# c) If the modified program normally reads commands interactively
# when run, you must cause it, when started running for such
# interactive use in the most ordinary way, to print or display an
# announcement including an appropriate copyright notice and a
# notice that there is no warranty (or else, saying that you provide
# a warranty) and that users may redistribute the program under
# these conditions, and telling the user how to view a copy of this
# License. (Exception: if the Program itself is interactive but
# does not normally print such an announcement, your work based on
# the Program is not required to print an announcement.)
#
# These requirements apply to the modified work as a whole. If
# identifiable sections of that work are not derived from the Program,
# and can be reasonably considered independent and separate works in
# themselves, then this License, and its terms, do not apply to those
# sections when you distribute them as separate works. But when you
# distribute the same sections as part of a whole which is a work based
# on the Program, the distribution of the whole must be on the terms of
# this License, whose permissions for other licensees extend to the
# entire whole, and thus to each and every part regardless of who wrote it.
#
# Thus, it is not the intent of this section to claim rights or contest
# your rights to work written entirely by you; rather, the intent is to
# exercise the right to control the distribution of derivative or
# collective works based on the Program.
#
# In addition, mere aggregation of another work not based on the Program
# with the Program (or with a work based on the Program) on a volume of
# a storage or distribution medium does not bring the other work under
# the scope of this License.
#
# 3. You may copy and distribute the Program (or a work based on it,
# under Section 2) in object code or executable form under the terms of
# Sections 1 and 2 above provided that you also do one of the following:
#
# a) Accompany it with the complete corresponding machine-readable
# source code, which must be distributed under the terms of Sections
# 1 and 2 above on a medium customarily used for software interchange; or,
#
# b) Accompany it with a written offer, valid for at least three
# years, to give any third party, for a charge no more than your
# cost of physically performing source distribution, a complete
# machine-readable copy of the corresponding source code, to be
# distributed under the terms of Sections 1 and 2 above on a medium
# customarily used for software interchange; or,
#
# c) Accompany it with the information you received as to the offer
# to distribute corresponding source code. (This alternative is
# allowed only for noncommercial distribution and only if you
# received the program in object code or executable form with such
# an offer, in accord with Subsection b above.)
#
# The source code for a work means the preferred form of the work for
# making modifications to it. For an executable work, complete source
# code means all the source code for all modules it contains, plus any
# associated interface definition files, plus the scripts used to
# control compilation and installation of the executable. However, as a
# special exception, the source code distributed need not include
# anything that is normally distributed (in either source or binary
# form) with the major components (compiler, kernel, and so on) of the
# operating system on which the executable runs, unless that component
# itself accompanies the executable.
#
# If distribution of executable or object code is made by offering
# access to copy from a designated place, then offering equivalent
# access to copy the source code from the same place counts as
# distribution of the source code, even though third parties are not
# compelled to copy the source along with the object code.
#
# 4. You may not copy, modify, sublicense, or distribute the Program
# except as expressly provided under this License. Any attempt
# otherwise to copy, modify, sublicense or distribute the Program is
# void, and will automatically terminate your rights under this License.
# However, parties who have received copies, or rights, from you under
# this License will not have their licenses terminated so long as such
# parties remain in full compliance.
#
# 5. You are not required to accept this License, since you have not
# signed it. However, nothing else grants you permission to modify or
# distribute the Program or its derivative works. These actions are
# prohibited by law if you do not accept this License. Therefore, by
# modifying or distributing the Program (or any work based on the
# Program), you indicate your acceptance of this License to do so, and
# all its terms and conditions for copying, distributing or modifying
# the Program or works based on it.
#
# 6. Each time you redistribute the Program (or any work based on the
# Program), the recipient automatically receives a license from the
# original licensor to copy, distribute or modify the Program subject to
# these terms and conditions. You may not impose any further
# restrictions on the recipients' exercise of the rights granted herein.
# You are not responsible for enforcing compliance by third parties to
# this License.
#
# 7. If, as a consequence of a court judgment or allegation of patent
# infringement or for any other reason (not limited to patent issues),
# conditions are imposed on you (whether by court order, agreement or
# otherwise) that contradict the conditions of this License, they do not
# excuse you from the conditions of this License. If you cannot
# distribute so as to satisfy simultaneously your obligations under this
# License and any other pertinent obligations, then as a consequence you
# may not distribute the Program at all. For example, if a patent
# license would not permit royalty-free redistribution of the Program by
# all those who receive copies directly or indirectly through you, then
# the only way you could satisfy both it and this License would be to
# refrain entirely from distribution of the Program.
#
# If any portion of this section is held invalid or unenforceable under
# any particular circumstance, the balance of the section is intended to
# apply and the section as a whole is intended to apply in other
# circumstances.
#
# It is not the purpose of this section to induce you to infringe any
# patents or other property right claims or to contest validity of any
# such claims; this section has the sole purpose of protecting the
# integrity of the free software distribution system, which is
# implemented by public license practices. Many people have made
# generous contributions to the wide range of software distributed
# through that system in reliance on consistent application of that
# system; it is up to the author/donor to decide if he or she is willing
# to distribute software through any other system and a licensee cannot
# impose that choice.
#
# This section is intended to make thoroughly clear what is believed to
# be a consequence of the rest of this License.
#
# 8. If the distribution and/or use of the Program is restricted in
# certain countries either by patents or by copyrighted interfaces, the
# original copyright holder who places the Program under this License
# may add an explicit geographical distribution limitation excluding
# those countries, so that distribution is permitted only in or among
# countries not thus excluded. In such case, this License incorporates
# the limitation as if written in the body of this License.
#
# 9. The Free Software Foundation may publish revised and/or new versions
# of the General Public License from time to time. Such new versions will
# be similar in spirit to the present version, but may differ in detail to
# address new problems or concerns.
#
# Each version is given a distinguishing version number. If the Program
# specifies a version number of this License which applies to it and "any
# later version", you have the option of following the terms and conditions
# either of that version or of any later version published by the Free
# Software Foundation. If the Program does not specify a version number of
# this License, you may choose any version ever published by the Free Software
# Foundation.
#
# 10. If you wish to incorporate parts of the Program into other free
# programs whose distribution conditions are different, write to the author
# to ask for permission. For software which is copyrighted by the Free
# Software Foundation, write to the Free Software Foundation; we sometimes
# make exceptions for this. Our decision will be guided by the two goals
# of preserving the free status of all derivatives of our free software and
# of promoting the sharing and reuse of software generally.
#
# NO WARRANTY
#
# 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
# FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
# OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
# PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
# OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
# TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
# PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
# REPAIR OR CORRECTION.
#
# 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
# WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
# REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
# INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
# OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
# TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
# YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
# PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGES.
#
# END OF TERMS AND CONDITIONS
#
#
# How to Apply These Terms to Your New Programs
#
# If you develop a new program, and you want it to be of the greatest
# possible use to the public, the best way to achieve this is to make it
# free software which everyone can redistribute and change under these terms.
#
# To do so, attach the following notices to the program. It is safest
# to attach them to the start of each source file to most effectively
# convey the exclusion of warranty; and each file should have at least
# the "copyright" line and a pointer to where the full notice is found.
#
# <one line to give the program's name and a brief idea of what it does.>
# Copyright (C) 19yy <name of author>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
#
# Also add information on how to contact you by electronic and paper mail.
#
# If the program is interactive, make it output a short notice like this
# when it starts in an interactive mode:
#
# Gnomovision version 69, Copyright (C) 19yy name of author
# Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
# This is free software, and you are welcome to redistribute it
# under certain conditions; type `show c' for details.
#
# The hypothetical commands `show w' and `show c' should show the appropriate
# parts of the General Public License. Of course, the commands you use may
# be called something other than `show w' and `show c'; they could even be
# mouse-clicks or menu items--whatever suits your program.
#
# You should also get your employer (if you work as a programmer) or your
# school, if any, to sign a "copyright disclaimer" for the program, if
# necessary. Here is a sample; alter the names:
#
# Yoyodyne, Inc., hereby disclaims all copyright interest in the program
# `Gnomovision' (which makes passes at compilers) written by James Hacker.
#
# <signature of Ty Coon>, 1 April 1989
# Ty Coon, President of Vice
#
# This General Public License does not permit incorporating your program into
# proprietary programs. If your program is a subroutine library, you may
# consider it more useful to permit linking proprietary applications with the
# library. If this is what you want to do, use the GNU Library General
# Public License instead of this License.
#----------------------------------------------------------------------
# End of License Agreement
#----------------------------------------------------------------------