![]() |
|
|
google unix.com
|
|||||||
| Fórumok | Regisztráció | Fórum Szabályok | Linkek | Albumok | GYIK | Tagok listája | Naptár | Keres | Mai hozzászólások | Megjelöl Fórumok Olvas |
| Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt. |
Több, UNIX és Linux fórum témák Ön által talált Hasznos
|
||||
| Szál | Thread Starter | Fórum | Válaszok | Utolsó hozzászólás |
| mget * (obtein fájlokat az aktuális könyvtárban, de nem az a kép formájában alkönyvtárra) | Peter321 | Shell programozás és Scripting | 0 | 03-12-2009 11:59 AM |
| Összevetéshez db övezetben fájl 2 directories | richsark | Shell programozás és Scripting | 2 | 03-05-2009 11:05 AM |
| hány könyvtárak és fájlok vannak a könyvtárban | smongam | Shell programozás és Scripting | 4 | 01-22-2009 02:47 PM |
| Fájlok két directories | ravi214u | Shell programozás és Scripting | 2 | 07-14-2008 08:04 AM |
| Hogyan lehet összehasonlítani a két sík kép és kap megváltozott adatok | jtshashidhar | Shell programozás és Scripting | 3 | 01-29-2006 10:26 PM |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma |
Értékelés:
|
Megjelenítési módok |
|
|
|
||||
|
Fájlok két kimenet, valamint a megváltozott fájlokat harmadik könyvtár
Kerestem kb 30 szál, a terhelés a Google oldalain és nem találja, amit én keresek. Van néhány alkatrészt, de nem az egész. Nem tudom látszik-hoz kap a puzzle illeszkednek egymáshoz.
Nekem van három mappa, melyek közül kettő tartalmaz különböző változatait több fájlt, dist/file1.php dist/file2.php stb és dist_old/file1.php dist_old/file2.php stb A harmadik mappa csak a megváltoztatott fájlokat, a kettő között. Ha a / dist/file1.php eltér / dist_old/file1.php majd dist_upgrade/file1.php nevű fájl már létezik ugyanolyan tartalmú, mint dist/file1.php. Jelenleg én vagyok kézzel birkóznak a különböző fájlokat WinMerge és szeretném automatizálni néhány ilyen, ha lehetséges. Amit én szeretnék csinálni van összehasonlítani a dist mappában a dist_old mappát, akkor már a fájlokat, amelyek nem ugyanazt a másolt dist_upgrade / fájl.kit megtartva a könyvtár teljes tartalma, szerkezete és az új fájlt a dist mappában. Thanks for any advice, Üdvözlettel, Brandon |
|
||||
|
Ez akkor lehet hasznos
Kód:
#!/bin/sh
cd dist
for a in `ls`; do
if [ ! -f "../dist_old/$a" ]; then
continue
fi
diff $a ../dist_old/$a > /dev/null
if [[ "$?" == "1" ]]; then
cp $a ../dist_upgrade
fi
done
Last edited by edgarvm; 05-26-2009 at 07:35 PM.. |
|
||||
|
Hasonló a edgarvm 'de birkóznak meg az új fájlokat, valamint a különböző egyek ...
Kód:
new=/dist
old=/dist_old
diff=/dist_upgrade
cd $new
for f in *f
do
# Diff the files - ignore the output...
diff $f $old > /dev/null 2>&1
# ...but get the status
status=$?
if [ $status -eq 0 ] ; then
# Files are identical - don't copy the file
echo $f unchanged
elif [ $status -eq 1 ] ; then
# Files differ - copy new file
echo $f changed
cp $f $diff
elif [ $status -eq 2 ] ; then
# Old file doesn't exist - copy new file
echo old $f does not exist
cp $f $diff
fi
done
|
|
||||
|
Kösz a válaszokat srácok is remek. Van egy pár módosítást kap ez működő rekurzívan használva edgarvm példáját. Én is beépítették JerryHone ötlete az újságírókkal való nem létező fájlok
Kód:
#!/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
list=`find . -type f`
for a in $list; do
if [ ! -f "$DIST_OLD$a" ]; then
cp --parents $a $DIST_UPGRADE
continue
fi
diff $a $DIST_OLD$a > /dev/null
if [[ "$?" == "1" ]]; then
# File exists but is different so copy changed file
cp --parents $a $DIST_UPGRADE
fi
done
Üdvözlettel, Brandon Last edited by bkeep; 05-26-2009 at 10:04 PM.. Reason: Megvan dolgozik fenti kód |
|
||||
|
köszönet srácok, ez a szkript segített nekem nagyon!
de ma rájöttem, hogy nem tudja feldolgozni szóközöket fájlnevek helyesen így módosítottam egy kicsit felhasználásával tanácsot most: Unixjunkie Blog: Kezelés fájlnevek szóközökkel Úgy tűnik, ez a szkript ilyen fájlok feldolgozására nem megfelelő (bár én nem teszt nem túl nagy): Kód:
#!/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
|
![]() |
| Könyvjelzõk |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|