Sponsored Content
Top Forums Shell Programming and Scripting compare files in two directories and output changed files to third directory Post 302347628 by realaaa on Wednesday 26th of August 2009 06:58:05 AM
Old 08-26-2009
thanks you guys, this script helped me a lot!

but today I found out that it can't process spaces in file names properly so I modified it a bit using the advise from here:

Unixjunkie Blog: Handling Filenames With Spaces


this script seems to process such files properly (although I didn't test it too much):

Code:
#!/bin/bash

# setup folders for our different stages
DIST=/var/www/localhost/htdocs/dist/
DIST_OLD=/var/www/localhost/htdocs/dist_old/
DIST_UPGRADE=/var/www/localhost/htdocs/dist_upgrade/

cd $DIST

find . -type f | while read filename
do
   if [ ! -f "$DIST_OLD$filename" ]; then
        cp --parents "$filename" $DIST_UPGRADE
      continue
   fi
   diff "$filename" "$DIST_OLD$filename" > /dev/null
   if [[ "$?" == "1" ]]; then
        # File exists but is different so copy changed file
        cp --parents $filename $DIST_UPGRADE
   fi
done

cheers!
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to compare two flat files and get changed data

Hi, I need to compare two flat files (yesterday & today's data) and get only the changed data from flat files. In flat file i dont have data column or anything its just a string data in flat file.Can any one please let me know the script With Regds Shashi (3 Replies)
Discussion started by: jtshashidhar
3 Replies

2. Shell Programming and Scripting

mget * (obtein files from current directory but not the files form sub-directories)

Hello, Using the instruction mget (within ftp) and with "Interactive mode off", I want to get all files from directory (DirAA), but not the files in sub-directories. The files names don't follow any defined rule, so they can be just letters without (.) period Directory structure example: ... (0 Replies)
Discussion started by: Peter321
0 Replies

3. UNIX for Dummies Questions & Answers

compare all files under directories

Hello I am very new to Unix. I am actually using the C shell to write a program that will compare all the files in the directory and subdirectores and print out the ones that are identical, I am assuming identical by name or text Thank you (2 Replies)
Discussion started by: ga.miami56
2 Replies

4. Shell Programming and Scripting

How to list all the files, directories and sub-directories in the current path except one directory?

Can anyone come up with a unix command that lists all the files, directories and sub-directories in the current directory except a folder called log.? Thank you in advance. (7 Replies)
Discussion started by: Manjunath B
7 Replies

5. UNIX for Dummies Questions & Answers

Compare files in two directories

Hi All, I have two directories that has some files, some of the files are common to both of them like : ls -l dir1 file1 file2 file3 ls -l dir2 file1 file2 file3 file4 file5 Now i want to get the files from dir2 that are not present in dir1 (means i want to get... (2 Replies)
Discussion started by: mukulverma2408
2 Replies

6. UNIX for Advanced & Expert Users

Find all files in the current directory excluding hidden files and directories

Find all files in the current directory only excluding hidden directories and files. For the below command, though it's not deleting hidden files.. it is traversing through the hidden directories and listing normal which should be avoided. `find . \( ! -name ".*" -prune \) -mtime +${n_days}... (7 Replies)
Discussion started by: ksailesh1
7 Replies

7. Shell Programming and Scripting

Compare files of 2 directories

Hi all, I have 2 directories dir1 and dir2 which contains many xml files. I need to compare files of dir1 with that of dir2 and if they match, I need to cut it from dir1 and paste it in dir2. I need to do this thru scripts. I'm currently investigating on the diff command. Please help me write... (6 Replies)
Discussion started by: frum
6 Replies

8. AIX

How to backup a directory (sub-directories/files) files from one server on to other ?

Hello, Server A: /directory1/ Server B: /Backups/ i wanted to backup contents of /directory1 from "server A" on to "Server B" every 1 hour. If there is any change in (only new/differences) contents on serverA (directory1/) supposed to be backeup on next run. I did used rsync command to... (5 Replies)
Discussion started by: System Admin 77
5 Replies

9. Shell Programming and Scripting

Compare files to pull changed records only

Hi, I am using Sun Solaris - SunOS. I have two fixed width files shown below. I am trying to find the changes in the records in the Newfile.txt for the records where the key column matches. The first column is a key column (example: A123). If there are any new or deletion of records in the... (4 Replies)
Discussion started by: Saanvi1
4 Replies

10. Shell Programming and Scripting

Compare directories and copy differences (files) in a another directory

Hey im working on script that can compare 2 directory and check difference, then copy difference files in third diretory. here is the story: in folder one we have 12 subfolder and in each of them near 500 images hosted. 01 02 03 04 05 06 07 08 09 10 11 12 in folder 2 we have same subfolder... (2 Replies)
Discussion started by: nimafire
2 Replies
SYSCONFTOOL(1)							    sysconftool 						    SYSCONFTOOL(1)

NAME
sysconftool - install configuration files SYNOPSIS
sysconftool [options] [filename.dist...] DESCRIPTION
sysconftool is a development utility that helps to install application configuration files. sysconftool allows an existing application to be upgraded without losing the older version's configuration settings. A new version of an application often introduces new configuration settings. Sometimes obsolete configuration settings are removed. Existing configuration settings may also now have additional options, or certain options are no longer valid any more. Because of this, an application upgrade usually installs a fresh set of configuration files, containing a default configuration that's known to work. Keeping the existing files carries the risk of the application failing to function properly due to a configuration that is no longer valid. A typical application installation script copies over configuration files with default settings. Existing configuration files are backed up or overwritten. With sysconftool, an application will install a configuration file names filename.dist, instead of filename. Then, the application's installation script runs sysconftool. sysconftool copies filename.dist to filename, but also checks if filename from an older version of the application already exist. If filename an older sysconftool-installed configuration file, it's configuration settings replace the defaults in filename.dist, which is then subsequently installed as filename. sysconftool is smart enough to: o Remove configuration settings that no longer exist. o Add new configuration settings. o Do not preserve an older configuration setting if there's a possibility that it is no longer valid in the new version of the application. sysconftool produces a short report when it runs. The report lists every configuration setting in $filename.dist, and its disposition. The possible dispositions are: new This a new configuration setting that wasn't found in the existing $filename. unchanged This setting's value was taken from the existing $filename, replacing the default value provided by $filename.dist. UPDATED This setting has been previously set in $filename, but the setting's value may no longer be valid in the new version of the application, so its default value is taken from $filename.dist, and it may need to be manually adjusted. All this logic is based on some additional metadata that must be included in each configuration file, that sysconftool reads. For this to work, both the old and the new version of the application must be sysconftool-ized. sysconftool operates in a fail-safe mode. If the old version did not use sysconftool, $filename is backed up to $filename.bak, and $filename is copied to $filename. This is what would essentially happen anyway without sysconftool. The local configuration needs to be reentered into $filename, so nothing is lost. However, the next upgrade will see sysconftool do its job. ADDING SYSCONFTOOL SUPPORT TO AN EXISTING APPLICATION
sysconftool requires the application to use autoconf and automake. The first step is to run the sysconftoolize script from the application's source directory. sysconftoolize copies the sysconftool script to the current directory, and appends a default install-configure rule to Makefile.am. After running sysconftoolize the macro AC_PROG_SYSCONFTOOL must be manually added to configure.in, and Makefile.am must be modified as follows. Makefile.am must be modified to install configuration files as filename.dist instead of filename. The default install-configure rule assumes that sysconf_DATA lists all configuration files in sysconfdir, and runs sysconftool on them. This will usually have to be modified, according to the application's individual needs. Finally, Makefile.am must be modified to distribute the sysconftool script in the application's source distribution. Adding sysconftool to EXTRA_DIST is what's needed in most cases. Finally, certain sysconftool magic incantations must be added to the application's configuration files, see sysconftool(7)[1] for more information. The last step involves updating the application's INSTALL instructions, so that the application can be properly installed. The following instructions must be added to INSTALL: 1. Run "make install-configure" after "make install". 2. If this is the first sysconftool-ized version, DO NOT simply copy over the old configuration files, and overwrite the new configuration files. Instead, manually edit each configuration file, and manually reset each configuration setting. This is because the new configuration files include the magic code for sysconftool, which would be lost when the configuration file is overwritten. 3. If this is not the first sysconftool-ized version, the output of make install-configure must be reviewed in order to manually adjust or tweak what sysconftool did. Many large configuration files can result in lots of output, so the output of make install-configure should be saved into a file, and reviewed. SEE ALSO
sysconftoolcheck(1)[2], sysconftool(7)[1]. AUTHORS
Double Precision, Inc. NOTES
1. sysconftool(7) [set $man.base.url.for.relative.links]/sysconftool.7.html 2. sysconftoolcheck(1) [set $man.base.url.for.relative.links]/sysconftoolcheck.1.html Courier Mail Server 04/05/2011 SYSCONFTOOL(1)
All times are GMT -4. The time now is 04:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy